<asp:Repeater ID="Repeater1" runat="server" DataSourceID="EntityDataSourceTeklifler">
<ItemTemplate>
<div class="panel panel-primary">
<div class="panel-body">
<strong>Teklif Kodu:</strong> <%#Eval("TeklifId") %><br />
<strong>Teklif Tarihi:</strong> <%#Eval("TeklifTarih") %><br />
<strong>Teklifi Hazırlayan:</strong> <%#Eval("Name") %> <%#Eval("Surname") %><br />
<strong>Firma Adı:</strong> <%#Eval("FirmaAdi") %><br />
<strong>Sipariş:</strong> <%#Eval("FUrunId") %><br />
<strong>Teklif Tutarı:</strong> <%#Eval("TeklifTutar") %><br />
</div>
</div>
</ItemTemplate>
</asp:Repeater>
如您所见,我有一个 Repeater
,它可以毫无问题地显示我的数据。我需要在代码隐藏中访问 TeklifId
。我要做类似的东西:
if(TeklifId == 1)
{
//do something
}
else if(TeklifId == 2)
{
//do something else
}
为此,我需要在它添加到 Repeater
时获取所有 TeklifId
。
最佳答案
理想情况下,您应该在 ItemTemplate
标记中包含一些 ASP.NET 控件(如 Label、Textbox
控件)的数据,因为它们很容易使用。但我不确定你为什么直接添加普通的 html 标签。
无论如何,要找到值,您必须在中继器控件的 ItemDataBound
控件中找到它,但为此您必须将 strong
标记设为服务器控件通过像这样添加 runat="server"
属性:-
<strong id="TeklifId" runat="server">Teklif Kodu:</strong> <%#Eval("TeklifId") %>
然后,像这样在您的 repeatre 控件中添加 ItemDataBound 事件:-
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand"
最后在后面的代码中你可以找到这样的值:-
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem ||
e.Item.ItemType == ListItemType.Item)
{
HtmlGenericControl TeklifId = e.Item.FindControl("TeklifId") as HtmlGenericControl;
string TeklifId = TeklifId.InnerText; //value here
}
}
关于c# - 在代码隐藏中从 Repeater 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33933809/