DataGrid中插入CheckBox进行单选

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


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

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

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

 

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


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

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

ExpandedBlockEnd.gif  }

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

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

ExpandedSubBlockEnd.gif        }
  
ExpandedBlockEnd.gif  }


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

转载于:https://www.cnblogs.com/xiaoyz/archive/2004/08/06/30783.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值