我在asp.net中的代码后面有一个变量 说 string str =“我的名字”;
我想将此字符串绑定到Repeater中的标签。
<asp:Label ID="lblsubjects" runat="server" Text='<%# What to write here %>'/>
使用linq查询绑定Repeater。
答案 0 :(得分:3)
见以下样本:
代码背后:
protected string myString;
protected void Page_Load(object sender, EventArgs e)
{
myString = "My Name";
string[] data = new[] { "1", "2", "3" };
this.rep.DataSource = data;
this.rep.DataBind();
}
ASPX:
<asp:Repeater runat="server" ID="rep">
<ItemTemplate>
<div>
<asp:Label runat="server" Text="<%#myString %>"></asp:Label>
</div>
</ItemTemplate>
</asp:Repeater>
答案 1 :(得分:2)
使用 OnItemDataBound 访问Label。
<asp:Repeater ID="Myrp" runat="server" OnItemDataBound="R1_ItemDataBound">
代码背后的代码:
public void R1_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
string str = "MY Name";
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
((Label)e.Item.FindControl("lblsubjects")).Text = str;
}
}
答案 2 :(得分:1)
该属性必须至少为protected
,然后您可以内联访问它:
<asp:Label ID="lblsubjects" runat="server" Text='<%# MyStr %>' />
代码隐藏:
private string _MyStr = "MY Name";
protected string MyStr
{
get
{
return _MyStr;
}
set
{
_MyStr = value;
}
}
请注意%#
仅用于数据绑定上下文。因此,标签的容器控件上必须有DataBind
。如果它不在GridView
但在页面的顶层,则需要this.DataBind()
。