在使用Infragistics NetAdvantage的UltraWebGrid的时候,总是会遇到如何去选择当前行,当前行的某个字段的值,检测模板列的控件并判断其状态等问题。在网上来查找到相关的问题也是七零八落的,总结一下写在这里。
1,获取UltraWebGrid选中行的信息
首先要设置UltraWebGrid选择状态为行选择模式。
1,获取UltraWebGrid选中行的信息
首先要设置UltraWebGrid选择状态为行选择模式。
UltraWebGrid1.DisplayLayout.SelectTypeRowDefault
=
Infragistics.WebUI.UltraWebGrid.SelectType.Single;
然后可以获取当前选择的行的信息
//
UltraWebGrid1第一列的值如:
string gridValue = UltraWebGrid1.DisplayLayout.SelectedRows[ 0 ].GetCellValue( this .UltraWebGrid1.Columns[ 0 ]).ToString();
受到这个代码的启发,可以获取UltraWebGrid中任何一行的某一列某一行的值
string gridValue = UltraWebGrid1.DisplayLayout.SelectedRows[ 0 ].GetCellValue( this .UltraWebGrid1.Columns[ 0 ]).ToString();
//
获取第i行第1列的值
string yqbh = UltraWebGrid1.DisplayLayout.Rows[i].GetCellValue(UltraWebGrid1.Columns[ 1 ]) .ToString ();
2,设置UltraWebGrid的第0列为模板列,加入CheckBox控件,判断其状态是否被选中,代码如下:
string yqbh = UltraWebGrid1.DisplayLayout.Rows[i].GetCellValue(UltraWebGrid1.Columns[ 1 ]) .ToString ();
//
可以写在任何地方,属于通用代码
Infragistics.WebUI.UltraWebGrid.TemplatedColumn tcol =
(TemplatedColumn)UltraWebGrid1.Bands[ 0 ].Columns[ 0 ]; // 模板列
foreach (CellItem item in tcol.CellItems)
{
System.Web.UI.WebControls.CheckBox chkIsHaveRight =
(System.Web.UI.WebControls.CheckBox)item.FindControl("chbShenhe");
if(chkIsHaveRight.Checked == true)
{
//进行相关的操作
}
}
在这里需要考虑的是如何实现对于UltraWebGrid的跨行操作,对于行的值可以根据UltraWebGrid.DisplayLayout.Pager.PageSize进行计算处理。
Infragistics.WebUI.UltraWebGrid.TemplatedColumn tcol =
(TemplatedColumn)UltraWebGrid1.Bands[ 0 ].Columns[ 0 ]; // 模板列
foreach (CellItem item in tcol.CellItems)
{
System.Web.UI.WebControls.CheckBox chkIsHaveRight =
(System.Web.UI.WebControls.CheckBox)item.FindControl("chbShenhe");
if(chkIsHaveRight.Checked == true)
{
//进行相关的操作
}
}