NetAdvantage使用手记(二)

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中任何一行的某一列某一行的值
//获取第i行第1列的值
string yqbh = UltraWebGrid1.DisplayLayout.Rows[i].GetCellValue(UltraWebGrid1.Columns[1]) .ToString ();

2、设置UltraWebGrid的第0列为模板列,加入CheckBox控件,判断其状态是否被选中,代码如下:
  Infragistics.WebUI.UltraWebGrid.TemplatedColumn   tcol   =                                                                                             (Infragistics.WebUI.UltraWebGrid.TemplatedColumn)UltraWebGrid1.Bands[0].Columns[0];//模板列
foreach(Infragistics.WebUI.UltraWebGrid.TemplatedColumn.CellItem   item   in   tcol.CellItems) 
  {             
     System.Web.UI.WebControls.CheckBox   chkIsHaveRight   = 
      (System.Web.UI.WebControls.CheckBox)item.FindControl("chbShenhe"); 
     if(chkIsHaveRight.Checked  ==  true) 
     { 
        //进行相关的操作
     }
   }

下面代码稍微修改可以访问指定行里面的数据
//UtrlaWebGrid 模版列的数据操作
            //胡福鹏 2007-03-20
            //模板列获取  Bands[0].Columns[0],自己根据实际情况,调整band和columns模版列的位置
            Infragistics.WebUI.UltraWebGrid.TemplatedColumn tcol = (Infragistics.WebUI.UltraWebGrid.TemplatedColumn)UltraWebGrid1.Bands[0].Columns[0];
            if (tcol != null && tcol.CellItems.Count > 0)
            {
                //获取模版列的cellitem,CellItems[0],表示第一行,
                Infragistics.WebUI.UltraWebGrid.CellItem item = (Infragistics.WebUI.UltraWebGrid.CellItem)tcol.CellItems[0];
                //在里面找对象
                RadioButtonList rbl = (RadioButtonList)item.FindControl("RadioButtonList1");
                //获取所需要的值
                strText = strText + "[" + rbl.SelectedValue + "]";
            }

3、全选方法实现
<script language="javascript">
   
       function SelectAll(ogrdResult, chk)
   {
    var oGrid = ogrdResult;
    var oRows = oGrid.Rows;
    for(i=0; i<oRows.length; i++)
    {
     var oRow = oRows.getRow(i);
     oRow.getCellFromKey("CHECK").setValue(chk.checked);
    }
   }
   
   </script>

将第一列替换成下面的内容:

<igtbl:UltraGridColumn HeaderText="&lt;INPUT TYPE=checkbox name=chkdg ID=chkAll onclick='SelectAll(ogrdResult,this)'&gt;"
           Key="CHECK" Width="25px" Type="CheckBox" BaseColumnName="CHECK" AllowUpdate="Yes">
           <CellStyle VerticalAlign="Middle" HorizontalAlign="Center"></CellStyle>
                                            <Header Caption="&lt;INPUT TYPE=checkbox name=chkdg ID=chkAll onclick='SelectAll(ogrdResult,this)'&gt;">
                                            </Header>
          </igtbl:UltraGridColumn>

还有一种方式:
在第一列的header 的caption 里面贴上下面的内容
<input id="SelectAll1" type="checkbox" name="SelectAll1" onclick="var strGridID = 'grdResult'; if(null==strGridID || strGridID.length&lt;=0){return;} try {var oGrid = ogrdResult; var oRows = oGrid.Rows; var objCurState = document.getElementById('SelectAll1'); var objSetValue = objCurState.checked;  for(i=0;i&lt;oRows.length;i++) { (oRows.getRow(i).getCell(0)).setValue(objSetValue); }} catch(e){ return; };" />
也可以,注意将strGridID = 'grdResult' 里面的控件名称修改成正确的名称。

posted on 2008-07-23 12:39  胡福鹏  阅读(165)  评论(0)    收藏  举报