小编Jus*_*tin的帖子

如何在extjs 3网格面板中显示/隐藏列

我有一个网格面板我需要显示/隐藏网格面板中的列,具体取决于复选框的值.如果选中该复选框,我需要在网格中显示列,如果未选中,我需要隐藏网格中的列.

这是我的代码

var chkEnableDisplayResponsibilityForAction = '<%=Session["chkEnableDisplayResponsibilityForAction"]%>';

 var flags = Boolean.parse(chkEnableDisplayResponsibilityForAction);
 var flags1 = !Boolean.parse(chkEnableDisplayResponsibilityForAction)

 var colModel = new Ext.grid.ColumnModel([
 { header: "PricePlanID", width: 100, sortable: true, dataIndex: 'PricePlanID', hidden: flags, hideable: flags1 },
  ]);  
Run Code Online (Sandbox Code Playgroud)

当我刷新页面时,我无法切换列,具体取决于复选框的值.但是当我登录并注销时,我能够看到网格面板中的更改.任何人都可以帮我刷新网格面板中的列值吗?

extjs extjs3

11
推荐指数
2
解决办法
4万
查看次数

MERGE违反PRIMARY KEY约束

我有一个SQL Server 2008多对多关系表(Assets)有两列:

AssetId (PK, FK, uniqueidentifier, not null)
AssetCategoryId (PK, FK, int, not null)
Run Code Online (Sandbox Code Playgroud)

在我的项目中,我需要从该表中获取行,并定期将它们插入到复制的数据库中.所以,我有两个完全相同的数据库(包括约束).

为了从一个数据库"复制"到另一个数据库,我使用带有临时表的MERGE语句.我将最多50条记录插入临时表,然后将临时表与Assets我正在复制的表合并,如下所示:

CREATE TABLE #Assets (AssetId UniqueIdentifier, AssetCategoryId Int);
INSERT INTO #Assets (AssetId, AssetCategoryId) VALUES ('ed05bac3-7a92-46aa-8822-2d882b137597', 44), ('dc5e3082-e2eb-4bdf-a640-94e0f59411ed', 22) ... ;

MERGE INTO Assets WITH (HOLDLOCK) AS Target 
USING #Assets AS Source 
ON Target.AssetId = Source.AssetId AND Target.AssetCategoryId = Source.AssetCategoryId 
WHEN MATCHED THEN
UPDATE SET ...
WHEN NOT MATCHED BY Target THEN 
INSERT (AssetId,AssetCategoryId) VALUES (Source.AssetId,Source.AssetCategoryId);
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,这很有效.但是,偶尔会出现错误:

违反PRIMARY KEY约束'PK_Assets'.无法在对象'dbo.Assets'中插入重复键.重复键值为(dc5e3082-e2eb-4bdf-a640-94e0f59411ed,22).该语句已终止.

当我在Assets …

sql t-sql sql-server upsert sql-server-2008

7
推荐指数
1
解决办法
7636
查看次数

在多对多关系中删除实体会在关系表中留下孤儿

删除多对多关系中的记录时,关系表具有孤立记录.我在DbContext中设置了以下多对多关系.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
  modelBuilder.Entity<Car>()
     .HasMany(u => u.Owners)
     .WithMany(l => l.Cars)
     .Map(ul =>
     {
       ul.MapLeftKey("CarId");
       ul.MapRightKey("OwnerId");
       ul.ToTable("CarOwners");
     });
}
Run Code Online (Sandbox Code Playgroud)

我的所有者模型有虚拟财产汽车:

public virtual ICollection<Car> Cars { get; set; } 
Run Code Online (Sandbox Code Playgroud)

我的汽车模型有虚拟财产所有者:

public virtual ICollection<Owner> Owners { get; set; } 
Run Code Online (Sandbox Code Playgroud)

我按如下方式删除了一辆车(db是我的DbContext,car是Car模型).

db.Cars.Remove(car);
db.SaveChanges()
Run Code Online (Sandbox Code Playgroud)

当我删除Car时,我期望CarOwners表中的所有记录都被删除,但事实并非如此.有什么建议?

c# entity-framework-4 ef-code-first entity-framework-4.3

6
推荐指数
1
解决办法
340
查看次数

从所有 Xml 节点值中删除空格

无论如何,是否可以在不遍历每个节点的情况下从 XML 节点值中修剪前导和尾随空格。

例如<someElement> value here </someElement>会变成<someElement>value here</someElement>

以下代码执行此操作,但我不想遍历每个会影响性能的节点:

if (node.ChildNodes.Count == 0)
  node.InnerText = node.InnerText.Trim();
else
{
  for (int i = 0; i < node.ChildNodes.Count; i++)
  {
    TrimLeadingOrTrailingSpacesFromNodeValue(node.ChildNodes[i]);
  }
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?这LoadOptions.PreserveWhitespace不是我要找的,我需要修剪 XML 节点中的值。

c# xml

4
推荐指数
2
解决办法
6847
查看次数

如果要处理SqlDataReader,我是否需要调用close()?

如果我在using块中实例化SqlDataReader ,我是否需要close()在读取器上调用?

查找下面显示的用户的简单示例.

  using (var connection = new SqlConnection(Settings.GetValue("SqlConnection")))
  {
    SqlCommand command = new SqlCommand("select * from Users where Id = @Id", connection);        
    command.Parameters.Add("@Id", SqlDbType.UniqueIdentifier);
    command.Parameters["@Id"].Value = id;

    using (SqlDataReader reader = command.ExecuteReaderWithRetry())
    {
      reader.Read();

      if (reader.HasRows)
      {
        //Do work
      }

      //Is this neccesary?
      reader.Close();
    }
  }
Run Code Online (Sandbox Code Playgroud)

c# design-patterns

3
推荐指数
1
解决办法
472
查看次数