怎么获取Repeater控件里的某一个值,急,急,急,跟GridView一样吗

解决方案 »

  1.   

    control = (控件類型)e.Item.FindControl(控件ID);
      

  2.   


      protected void cartlist_ItemCommand(object source, RepeaterCommandEventArgs e)
        { 
           if (e.CommandName == "Change")
                {                TextBox lb = (TextBox)e.Item.FindControl("tel4");                if (lb.Text.Length != 0)
                    {
                        if (C_Shopping.ChangeCount(sid, Convert.ToInt32(lb.Text)))
                        {
                            bind();
                        }
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(GetType(), "确定", "alert('请输入正确的数字')", true);
                    }
                }
            }
        }
      

  3.   


              <asp:Repeater ID="cartlist" runat="server" OnItemCommand="cartlist_ItemCommand">
            
             <HeaderTemplate>
             
                
                 <table>
                    <tr>
                  <td width="40" align="center">
                  
                
                    <asp:CheckBox ID="Checkall" runat="server" onclick="javascript:selectall(this);" />
                  
                  </td>
                  <td width="102" height="36" align="center" class="cart">商品编号</td>
                  <td width="250" align="center" class="cart">商品描述</td>
                  <td width="104" align="center" class="cart">购买数量</td>
                  <td width="90" align="center" class="cart">价格</td>
                  <td width="88" align="center" class="cart">商品编辑</td>
                </tr>
                <tr>
                  <td colspan="6" bgcolor="#D9D9D9" style="height: 1px"></td>
                </tr>
             </HeaderTemplate>
             <ItemTemplate>
                                       
                              <asp:TextBox ID="tel4" runat="server" onkeyup="value=value.replace(/[^\d]/g,'') " Text='<%#Eval("S_count") %>'
                              onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"  maxlength="3"
                              style="width:20px; height:16px; border-width:1px; border-style:solid; border-color:#E3E3E3; font-family: Arial, Helvetica, sans-serif; font-size: 11px; font-style: normal;"></asp:TextBox>
                              </td>
                              
                              <td width="20" align="center"> 套 </td>
                                                                 </tr>
                      <tr>
                        <td colspan="6" bgcolor="#D9D9D9" style="height: 1px"></td>
                      </tr>
                    </table>
        
                    
                    </td>
                </tr>
             </ItemTemplate>
             <FooterTemplate>
             
             
               </table>
             
             </FooterTemplate>
            </asp:Repeater>
                
      

  4.   

    方便你看  去掉了一些 html
      

  5.   

    control = (控件類型)e.Item.FindControl(控件ID);
      

  6.   

    哦!抱歉!!没太注意!!
    1.首先设置行号,也即Button的CommandArgument:
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            ((Button)e.Item.FindControl("Button1")).CommandArgument = e.Item.ItemIndex.ToString();
        }2.设置在Repeat中Button的click事件,也即:
    ......
    <asp:Button ID="Button1" runat="server" Text="Button"  OnClick="Button1_Click"/>
    ...........3.
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button myButton = (Button)sender;
            int index = Convert.ToInt16(myButton.CommandArgument);//获得点击的行号
            string a1 = ((Label)Repeater1.Items[index].FindControl("名称1")).Text;
            string a2 = ((Label)Repeater1.Items[index].FindControl("名称2")).Text;
       }
    看一下html代码,必定有控件名称!!
      

  7.   

    哦!抱歉!!没太注意!!
    1.首先设置行号,也即Button的CommandArgument:
        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            ((Button)e.Item.FindControl("Button1")).CommandArgument = e.Item.ItemIndex.ToString();
        }2.设置在Repeat中Button的click事件,也即:
    ......
    <asp:Button ID="Button1" runat="server" Text="Button"  OnClick="Button1_Click"/>
    ...........3.
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button myButton = (Button)sender;
            int index = Convert.ToInt16(myButton.CommandArgument);//获得点击的行号
            string a1 = ((Label)Repeater1.Items[index].FindControl("名称1")).Text;
            string a2 = ((Label)Repeater1.Items[index].FindControl("名称2")).Text;
       }
    看一下html代码,必定有控件名称!!
      

  8.   

      string a1 = ((Label)Repeater1.Items[index].FindControl("名称1")).Text; 
            string a2 = ((Label)Repeater1.Items[index].FindControl("名称2")).Text; 
      

  9.   

    不用控件的名称也可以,但你要测试究竟是多少数字??
            string a1 = ((Label)Repeater1.Items[index].Controls[1]).Text;
            string a2 = ((Label)Repeater1.Items[index].Controls[3]).Text;
            string a3 = ((Label)Repeater1.Items[index].Controls[5]).Text;这个1,3,5要通过测试来确定,究竟排在第几位!!
      

  10.   

    估计楼主也没有用Label吧。加上Label好方便点。。