Jim*_*Jim 5 infragistics ultrawingrid
我希望根据行中的布尔同步属性禁用Ultragrid中的某些行.我想到了两种不同的解决方案,但都没有解决.
1)将Sync属性数据绑定到行的Activation属性.这可能吗?
2)在诸如Gridize的InitializeRow事件之类的事件中,找出Sync属性是什么,如果设置为true,则禁用该行.此方法除了将更多行添加到网格然后保存网格之外,数据重新排序,以便禁用的行不包含正确的数据.因此,我需要一种方法来了解何时发生这种情况,以便我可以在之后再次通过并禁用正确的行.
private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
if (e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value != null && (bool)e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value)
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
Run Code Online (Sandbox Code Playgroud)
您也可以在自己的函数中编写它.我希望以下解决方案可以帮到你.
创建一个Windows窗体"test"..并在该窗体中拖放"ultragird",如下所示.

创建一个表单加载函数"test_Load"..并尝试下面的代码..您的行同步"假"被禁用..
private void test_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Address", typeof(string));
dt.Columns.Add("Sync", typeof(string));
dt.Rows.Add(new object[] {"John","United States","False" });
dt.Rows.Add(new object[] { "Xing", "China", "True" });
dt.Rows.Add(new object[] { "Ram", "Nepal", "True" });
dt.Rows.Add(new object[] { "Germany", "Thomas", "False" });
dt.Rows.Add(new object[] { "Pedrik", "Russia", "True" });
ultraGrid1.DataSource = dt;
ultraGrid1.DataBind();
DisableRowsWithSyncOff(dt.Rows.Count);
}
private void DisableRowsWithSyncOff(int _rowcount)
{
for (int i = 0; i < _rowcount; i++)
{
if (!Convert.ToBoolean(ultraGrid1.Rows[i].Cells["Sync"].Value.ToString()))
{
ultraGrid1.Rows[i].Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8254 次 |
| 最近记录: |