注册 登录
编程论坛 ASP.NET技术论坛

datalist 前面的checkbox 点击后得到这行的索引主键ID

zmidl 发布于 2010-05-10 14:08, 1381 次点击
    foreach (Control c in DataList1.Controls)//循环datalist 搜索所有的控件  得到c
    {
            CheckBox cb = (CheckBox)c.FindControl("CheckBox1");//声明一个选框 在c里面
            if (cb.Checked)//选中的话
            {
                    我要当前点击的这个选框的 行的 datalist里的 索引主键 ID
            }
            
            然后用 gridview 显示出来
目前我要实现以上效果 本人初学者 希望指点者可以写点具体的代码  谢谢了!
5 回复
#2
misswang2010-05-10 20:18
你的意思看不懂,不知道你要什么效果
#3
shuijiashui2010-05-11 14:58
            

获取别“选择”的控件,可以使用这种方法,
我之前在这个发过帖子了,《看过之后,两层架构的基本都会做了》就有


        for (int i = 0; i < DataList1.Rows.Count; i++)//        {
            CheckBox x = (CheckBox)DataList1.Rows[i].FindControl("CheckBox1");
            if (x.Checked)
            {
                string id =((Label)DataList1.Rows[i].FindControl("Label1")).Text;//获取和“选择“控件一行的id
                SqlConnection conn = DB.getconnection();
                string sql = "select * from speciality where specialityid='" + id + "'";
                SqlCommand comm = new SqlCommand(sql, conn);
                comm.ExecuteNonQuery()                 {
                conn.Close();
            }
         
#4
zongshi1232010-05-12 21:32
确定:datalist  已经绑定了 DataKeyField
前台:有个 TextBox控件 即:TextBox1 用来放主键值  
 function getId(control,id)
    {
        if(control.checked)
            document.getElementById("<% =TextBox1.ClientID %>").value=id;
        else
            document.getElementById("<% =TextBox1.ClientID %>").value="";
    }

后台:
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        CheckBox chk = e.Item.FindControl("CheckBox1") as CheckBox;
            string id = this.DataList1.DataKeys[e.Item.ItemIndex].ToString();
            chk.Attributes.Add("onclick", "getId(this," + id + ")");  
    }
效果:就是点击选中一个 checkbox ,文本框里显示下他的主键值,,取消选中,值为空。。

可以把TextBox1 用个 隐藏的 服务器控件,,来绑
#5
hhy4204596742010-05-13 11:38
初学者  路过  看了大家的代码 学习到了些东西!
1