如何获得"标签"的价值在中继器内?

时间:2016-06-05 11:49:25

标签: asp.net vb.net

您好,我只是想问一下如何在转发器中获取Label的值。我想传递" lblProduct"的价值。在命令名称=" ViewDetails"。感谢

<asp:Repeater ID="reptrData" runat="server" >
         <ItemTemplate>
             <div>
               <h6>Product Details</h6>
                 <asp:Panel ID="PanelHeader" runat="server" CssClass="ui-widget-header">
                     <table>
                         <tr>
                             <td><b>Product:</b></td> 
                             <td><asp:Label ID="lblProduct" runat ="server"><%#Eval("plCode")%></asp:Label>
                             </td>
                            </tr>
                         <tr>
                             <td><b>Date:</b></td>
                             <td><asp:Label ID="lblDate" runat ="server"><%#Eval("plDate")%></asp:Label>
                             </td>
                         </tr>
                    </table>
                </asp:Panel>
            </ItemTemplate>
</asp:Repeater>

3 个答案:

答案 0 :(得分:2)

您可以使用转发器项的FindControl方法查找标签:

protected void reptrData_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    Label lblProduct = e.Item.FindControl("lblProduct") as Label;
    string product = lblProduct.Text;
}

出于某种原因,当我使用您当前的标记时,标签的文本在代码隐藏中是空的。但是,如果使用Label的Text属性来设置内容,则可以检索它:

<asp:Repeater ID="reptrData" runat="server" onitemcommand="reptrData_ItemCommand">
    <ItemTemplate>
        <div>
            <h6>
                Product Details</h6>
            <asp:Panel ID="PanelHeader" runat="server" CssClass="ui-widget-header">
                <table>
                    <tr>
                        <td>
                            <b>Product:</b>
                        </td>
                        <td>
                            <asp:Label ID="lblProduct" runat="server" Text='<%# Eval("plCode") %>' />
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <b>Date:</b>
                        </td>
                        <td>
                            <asp:Label ID="lblDate" runat="server" Text='<%# Eval("plDate") %>' />
                        </td>
                    </tr>
                </table>
            </asp:Panel>
        </div>
    </ItemTemplate>
</asp:Repeater>

N.B。我还在ItemTemplate中添加了div元素的结束标记。

答案 1 :(得分:0)

使用FindControl()方法转到标签控件,然后获取文本

Label lbl1 = (Label)reptrData.FindControl("lblProduct");
Response.Write(lbl1.Text);

您应该更改您的设计ASPX代码并在Text属性中为该标签添加值

<td><asp:Label ID="lblProduct" runat="server" Text='<%#Eval("plCode")%>'></asp:Label></td>

答案 2 :(得分:0)

如果你想获得Lable值,我认为最好使用输入,然后为该输入提供一个name属性,例如:

<asp:Repeater ID="reptrData" runat="server" >
         <ItemTemplate>
             <div>
               <h6>Product Details</h6>
                 <asp:Panel ID="PanelHeader" runat="server" CssClass="ui-widget-header">
                     <table>
                         <tr>
                             <td><b>Product:</b></td> 
                             <td><span name="lblProduct" ><%#Eval("plCode")%></span>
                             </td>
                            </tr>
                         <tr>
                             <td><b>Date:</b></td>
                             <td><span name="lblDate"><%#Eval("plDate")%></span>
                             </td>
                         </tr>
                    </table>
                </asp:Panel>
            </ItemTemplate>
</asp:Repeater>

之后,您可以通过

获取值列表
HttpContext.Current.Request["lblProduct"]

然后如果你想找到一个特定的Lable,你可以将每行的ID添加到Name并按请求和特定名称获取值如下:

<asp:Repeater ID="reptrData" runat="server" >
             <ItemTemplate>
                 <div>
                   <h6>Product Details</h6>
                     <asp:Panel ID="PanelHeader" runat="server" CssClass="ui-widget-header">
                         <table>
                             <tr>
                                 <td><b>Product:</b></td> 
                                 <td><span name="lblProduct<%#Eval("ID")%>" ><%#Eval("plCode")%></span>
                                 </td>
                                </tr>
                             <tr>
                                 <td><b>Date:</b></td>
                                 <td><span name="lblDate<%#Eval("ID")%>"><%#Eval("plDate")%></span>
                                 </td>
                             </tr>
                        </table>
                    </asp:Panel>
                </ItemTemplate>
    </asp:Repeater>

然后在你的代码中

string value = HttpContext.Current.Request [“lblDate1”];

有关更多信息,请参阅:Getting the value of a label from HttpContext.Current.Request Get the value of Label in listview

相关问题