在datalist中添加checkbox选项,如何选择checkbox时激发事件,并获取主键取,谢谢!

解决方案 »

  1.   

    不知道你说的主键值是不是ItemIndex
    <asp:CheckBox Runat="server" OnCheckedChanged='void(<%#Container.ItemIndex%>)"></asp:CheckBox>
    如果在客户端执行的话
    自己在后台为CheckBox添加属性attribute.add("onclick","function()")
      

  2.   

    protected void check_CheckedChanged(object sender, EventArgs e)
        {    }
    那我在cs文件中这代码要怎么写呢?
      

  3.   

    'void(<%#Container.ItemIndex%>)'这里就已经出现错误了?你这是vs2003里吗?
      

  4.   

    //****使用委托
    protected void  ckball_CheckedChanged(object sender, EventArgs e)
    {
        //****ckball 代码
    }//****在DGRid_ItemDataBound事件调用事件
     this.ckball_CheckedChanged += new EventHandler(ckball_CheckedChanged);
      

  5.   

    //****你可以尝试一下,将数邦定htmlinputcheced控件中//****邦定代码为
    <input id="ckball" runat="server" type="checked" value='<%#DataBinder.Eval(Container.DataItem,"ID")%>' onclick="javascript:SelectValue(this);">
    //****用JS获取被选种项的值
    function SelectValue(objckb)
    {
       if(objckb)
       {
          if(frmlist.txtselectvalue.value=="")
          {
              frmlist.txtselectvalue.value=objckb.value;
          }
          else
          {
             //****获取编号用","分开
             frmlist.txtselectvalue.value+=","+ckbal.value;
          }
       }
       else
       {
           //****如果取消选择,则清空以前被选择的值
           if(frmlist.txtselectvalue.value.indexOf(",")>0)
           {
              frmlist.txtselectvalue.value=frmlist.txtselectvalue.value.replace(objckbal.value+",","");
           }       frmlist.txtselectvaue.value=frmlist.txtselectvalue.value.replace(objckball.value,"");
        }}
      

  6.   

    checkbox autopostback设为真的,我只取一条记录,只是就是不知道事件在哪里写,也获取不到itemindex的值.
    protected void check_CheckedChanged(object sender, EventArgs e)
        {
           
            for (int i = 0; i < DataList1.Items.Count; i++)
            {
                string ischek = ((CheckBox)DataList1.Items[i].FindControl("CheckBox")).Checked.ToString();
                if (ischek == "true")
                {
                    int pid = DataList1.Items[i].ItemIndex;
                    Response.Redirect("product.aspx?pid=" + pid);
                }
            }    }
      

  7.   

    把checkbox选中后没有反应?请教高手
                <ItemTemplate>
                           <table width="100%"   class="font1"  cellspacing="3" cellpadding="0">
      <tr>
        <td rowspan="6"><div align="center"><asp:imagebutton ID="photo" ImageUrl='<%#Eval("p_simg")%>'  runat="server"    CommandName="image"  BorderWidth="1" /></div></td>
        <td colspan="2"><asp:Label ID="Label" runat="server" />    
          <asp:Label ID="Label2" runat="server" Text='<%#Eval("p_name")%>' ForeColor="#333333" />            
          <hr></td>
        </tr>
      <tr>
        <td> <div align="right">SIZE: </div></td>
        <td><div align="left"><asp:TextBox ID="size" runat="server"  ReadOnly="true" Text='<%#Eval("p_size") %>' CssClass="txtname" /></div></td>
      </tr>
      <tr>
        <td> <div align="right">MEAS: </div></td>
        <td><div align="left"><asp:TextBox ID="meas" runat="server" ReadOnly="true" Text='<%#Eval("p_emas") %>' CssClass="txtname" /></div></td>
      </tr>
      <tr>
        <td> <div align="right">G/NW: </div></td>
        <td><div align="left"><asp:TextBox ID="gnw" runat="server" ReadOnly="true" Text='<%#Eval("p_gnw") %>' CssClass="txtname" /></div></td>
      </tr>
      <tr>
        <td> <div align="right">QTY: </div></td>
        <td><div align="left"><asp:TextBox ID="qty" runat="server" ReadOnly="true" Text='<%#Eval("p_qty") %>' CssClass="txtname" /></div></td>
      </tr>
      <tr>
        <td colspan="2"><div align="right">
          <font color="#333333"><asp:CheckBox ID="CheckBox"  runat="server" Text="Enquiry" AutoPostBack="true" OnCheckedChanged="check_CheckedChanged"/> </font>     
        </div></td>
      </tr>
    </table><br />
                        </ItemTemplate>
      

  8.   

    在 ITEMCREATED 里给CHECKBOX 写委托,如:
    private void DataList1_ItemCreated(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
    {
    CheckBox ck = (CheckBox)e.Item.FindControl("CheckBox1");
    if(ck!=null)
              {
              ck.Attributes.Add("uid",this.DataList1.DataKeys[e.Item.ItemIndex].ToString());
    ck.CheckedChanged +=new EventHandler(ck_CheckedChanged);
              }
    }private void ck_CheckedChanged(object sender, System.EventArgs e)
    {
    //CODE
    }
      

  9.   

    更正:   首先将 ID 字段绑定到你 DATALIST 的 DataKeyField
    然后将
       ck.CheckedChanged +=new EventHandler(ck_CheckedChanged);
    改为
       ck.ToolTip = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();然后在 
    private void ck_CheckedChanged(object sender, System.EventArgs e)
    {
    //CODE
    }
    中用  string uid = ((CheckBox)sender).ToolTip ; 得到该ID