<asp:datagrid id="dgUser" Runat="server" Width="100%" HorizontalAlign="Center" BorderColor="White"
BorderWidth="1px" CellPadding="1" AutoGenerateColumns="False" Visible="False">
<AlternatingItemStyle CssClass="DTG-Item-1-1"></AlternatingItemStyle>
<ItemStyle CssClass="DTG-Item-1-1"></ItemStyle>
<HeaderStyle CssClass="DTG-Header-1"></HeaderStyle>
<FooterStyle CssClass="DTG-Footer-1"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderStyle-Width="5%">
<ItemTemplate>
<asp:CheckBox ID="cbUser" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Emp ID" DataField="empid" HeaderStyle-Width="30%"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Emp NO" DataField="empno" HeaderStyle-Width="30%"></asp:BoundColumn>
<asp:BoundColumn HeaderText="Emp Name" DataField="empname" HeaderStyle-Width="35%"></asp:BoundColumn>
</Columns>
</asp:datagrid>我在datagrid设置了模版列并绑定了一个checkbox,看上去datagrid中的checkbox不是单选的
并且当我选中某个checkbox后,要把所在行的emp id传到下个页面去

解决方案 »

  1.   

    你把checkbox的值也绑定上你要传递的主键即可
      

  2.   

    没有其他的事件,我希望是在选中一个checkbox时能够实现传值
      

  3.   

    在你DataGrid事件里写
    foreach(DataGridItem dgiTemp in this.dgUser.Items)
    {
    ArrayList myList = new ArrayList(dgUser.Items);
    CheckBox cbTemp =  dgiTemp.Cells[0].FindControl("cbUser") as CheckBox ;  
    if(cbTemp != null)
    {
    if(cbTemp.Checked )
    {
     myList =DataGrid1.Items[dgiTemp].Cells[1].Text; }
    }
    Response.Redirect("1.aspx?array ="+ myList );
    }
      

  4.   

    Response.Redirect("1.aspx?array ="+ myList );
    写错放循环外面
      

  5.   

    ArrayList myList = new ArrayList(dgUser.Items);
    也拿出循环来
      

  6.   

    自己写定义得事件,有一个CommandName属性可以用来填写执行的动作的名称,然后在ItemCommand事件里写具体的方法
      

  7.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=FF130C7F-3650-4DA6-8943-8AA4AF3E3459
      

  8.   

    开了个会回来,看到这么多留言,先谢谢大家哦大家好像只回答了一个问题,另外一个如何使那些checkbox只能是单选呢
      

  9.   

    前台:
    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>
    后台:
    private void dgUser_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 cbUser; 
        cbUser=(CheckBox)e.Item.FindControl("cbUser");
        cbUser.Attributes.Add("OnClick","SetCheckBoxState()");
       }
      }
      

  10.   

    to c137004801211401(chaiwebcode):
    我就是不知道该写到哪个事件里
    我有试着写在itemdatabound里面,好像不行,勾选之后一点反应都没有
      

  11.   

    是这控件的ItemDataBound里吗?
    事件有没注册?
    SCRIPT language="JavaScript">
    前我少写个<有无加上
      

  12.   

    你把
    你相干的2部分(srtipt | CS)发来看下错那里