UltraWebGrid模板列及行的相关操作(转)
在使用Infragistics NetAdvantage的UltraWebGrid的时候,总是会遇到如何去选择当前行,当前行的某个字段的值,检测模板列的控件并判断其状态等问题。在网上来查找到相关的问题也是七零八落的,总结一下写在这里。
1、获取UltraWebGrid选中行的信息
首先要设置UltraWebGrid选择状态为行选择模式。
2、设置UltraWebGrid的第0列为模板列,加入CheckBox控件,判断其状态是否被选中,代码如下:
在这里需要考虑的是如何实现对于UltraWebGrid的跨行操作,对于行的值可以根据UltraWebGrid.DisplayLayout.Pager.PageSize进行计算处理。
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 ();
string yqbh = UltraWebGrid1.DisplayLayout.Rows[i].GetCellValue(UltraWebGrid1.Columns[1]) .ToString ();
2、设置UltraWebGrid的第0列为模板列,加入CheckBox控件,判断其状态是否被选中,代码如下:
//可以写在任何地方,属于通用代码
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)
{
//进行相关的操作
}
}
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进行计算处理。