您好,我只是想问一下如何在转发器中获取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>
答案 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