我是做的一个购物系统,
我在dataList 里面有个按钮,现在想在这个按钮的点击事件中获得这一行数据的一个控件的值,就是商品的ID,请问有什么方法能获得吗?

解决方案 »

  1.   

    那你在模板列事件中写
    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            string id = this.DataList1.DataKeys[(int)e.Item.ItemIndex].ToString();
            //string cmdStr = e.CommandName;
            //switch (cmdStr)
            //{ 
            //    case "sell":
            //        this.Label1.Text = "您购买的产品ID是:"+id;
            //        break;
            //    case "cancel":
            //        this.Label1.Text = "您取消的产品ID是:"+id;
            //        break;
            //}        string cmdSourceStr = ((LinkButton)e.CommandSource).Text;
            switch (cmdSourceStr)
            { 
                case "购买":
                    this.Label1.Text = "您购买的产品ID是:" + id;
                    break;
                case "取消":
                    this.Label1.Text = "您取消的产品ID是:" + id;
                    break;
            }
        }
      

  2.   

    有个e这个变量
    ((TextBox)(e.Item.FindControl("TextBoxName"))).Text
      

  3.   

    用FindControl方法,找到这个控件然后取值
      

  4.   

    你要是想找datalist模板中某个textbox中的值
    你在模板列事件中写:        TextBox tb = (TextBox)DataList1.Items[e.Item.ItemIndex].FindControl("TextBox1");
            Response.Write(lb.Text);
      

  5.   

    不行啊,我是想在dataList里面的一个按钮的点击事件中,找到dataList中的一个HiddenField值,在这个按钮的点击事件中,没有e.Item.FindControl这种方法
      

  6.   

    <asp:Button CommandName="MyCmdName" ....protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
    switch(e.CommandName) {
         case "MyCmdName" :
           TextBox txt = e.Item.FindControl("MyTextBoxID") as TextBox;
           string id = txt.Text;
           // ...
          break;
    }}
      

  7.   

    TextBox tb = (TextBox)DataList1.Items[e.Item.ItemIndex].FindControl("TextBox1");
      

  8.   

    不是在这个按钮的点击事件中写
    而是在模板列事件中写
    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    这个事件
    然后用我给你的方法
      

  9.   

    按LS说的做
    估计LZ嵌的是Button控件而不是LinkButton控件,换过来就可以了
      

  10.   

    如果你的控件是 TextBox的话
    ((TextBox)e.Items.FindControl("控件ID")).Text