我想从转发器中取出标签?

时间:2015-11-09 12:36:32

标签: c# asp.net find label

我有一个带有数据库数据的Repeater。我需要查找绑定到Product ID的{​​{1}},但无法获取它。

这是我的Aspx页面

Label

我在c#中的编码是

 <asp:Repeater ID="rpProducts" runat="server" OnItemCommand ="add_click" >
                                    <ItemTemplate>
                                       <div style="visibility: hidden">
         <asp:Label ID="Label1" runat="server" Text='<%# Eval("id")%>' ></asp:Label>

                                         </div>
                                        <div class="col-sm-4 prdcts">
                                            <h3>
                                                <%# Eval("productName")%></h3> 
                                            <div class="col-sm-12 prdctbox">
                                                <span class="AddToCrt">
                                                    <div title="Add to Cart">
                                                       <%-- <em class="fa fa-plus"></em>--%>
                                                        <asp:ImageButton ID="ImageButton1" runat="server" onclick="add_click" Height="22px" 
                                ImageUrl="~/static/uploads/images/1_1-128.png" Width="24px"/>
                                                    </div>
                                                </span>
                                                <div class="imgs">
                                                    <%# Eval("productDescription")%>
                                                </div>
                                                <%# Eval("listingHTML")%>
                                                <div class="row">
                                                    <a href="/en/product/detail.aspx?pId=<%# Eval("id")%>" class="sqare_easer">More</a>
                                                </div>
                                            </div>
                                        </div>
                                    </ItemTemplate>
                                </asp:Repeater>

有没有办法获取标签值?

2 个答案:

答案 0 :(得分:1)

根本不需要隐藏的标签。您只需稍微更改按钮的标记即可。

<asp:ImageButton ID="ImageButton1" runat="server" CommandArgument='<%# Eval("id")%>' ... />

在您的代码隐藏中,您可以引用ID,如:

protected void Button1_Click(object sender, EventArgs e)
{
  var button = (IButton)sender;
  // assuming id is Int32
  int id = int.Parse(button.CommandArgument);
}

答案 1 :(得分:0)

您的Label1在ItemTemplate中,因此获取控件值的正确方法是

 protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
        {
           if(e.Item.ItemType == ListItemType.Item|| e.Item.ItemType == ListItemType.AlternatingItem)
            {
            Label l = (Label)e.Item.FindControl("Label1");
            string s = l.Text;
             }
        }