DataGrid中插入CheckBox进行单选

DateGrid使用比较方便。至少相对而言要比采用直接输出HTML代码的方式简单得多。
如果数据库比较大,那么要采用分页的话,那么DateGrid的使用比起输出HTML的方法要更加简单。
下面的方法是好不容易从一个地方找到的,采用了JAVE脚本。


首先在aspx文件的HTML代码中插入下面JAVA代码:

   <SCRIPT language="JavaScript">
     
function SetCheckBoxState()
   {
    
var dom=document.all;
    
var el=event.srcElement;
    
if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox")
     {
      
for(i=0;i<dom.length;i++)
       {
        
if(dom[i].tagName=="INPUT"&&dom[i].type.toLowerCase()=="checkbox")
         {
          dom[i].checked
=false;
         }
       }
     }
    el.checked
=!el.checked;
   }
  
</SCRIPT>

这是一个调用函数用来判断CheckBox是否被选中。

 

向aspx文件中添加DateGrid控件,点击控件,右键打开属性生成器。选择列,添加模板列,退出。编辑模板列,向模板列Item Template中添加CheckBox控件,命名为chkExport,退出。


修改DateGrid控件事件,向ItemDataBound添加函数名DataGrid1_ItemDataBound,确定,进入函数编辑区。添加下面代码:

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
   
if(e.Item.ItemIndex<0)  return;
   
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   
{
         System.Web.UI.WebControls.CheckBox chkExport; 
         chkExport
=(CheckBox)e.Item.FindControl("chkExport");
         chkExport.Attributes.Add(
"OnClick","SetCheckBoxState()");
         e.Item.Attributes.Add(
"onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='ffff33'");
    e.Item.Attributes.Add(
"onmouseout","this.style.backgroundColor=currentcolor");
    }

  }

如何使用呢?使用下面代码:

private void Button_View_Click(object sender, System.EventArgs e)
{
      System.Web.UI.WebControls.CheckBox chkExport;
      
foreach (DataGridItem dgItem in DataGrid1.Items)
    
{
            chkExport
=(CheckBox)dgItem.FindControl("chkExport");
            
if(chkExport.Checked)
            
{
                   Response.Redirect(
"Search_view.aspx?SId="+dgItem.Cells[1].Text.ToString()+"&Name="+dgItem.Cells[2].Text.ToString());
               }

        }
  
  }


在dgItem中,Cell[0]是指CheckBox,后面的和你的表格一致。

posted on 2004-08-06 17:39  逍遥子  阅读(1143)  评论(0编辑  收藏  举报

导航