我在asp.net中的文件后面的代码中有一个变量 说 字符串str ="我的名字";
我想将此字符串绑定到中继器中的标签。
<asp:Label ID="lblsubjects" runat="server" Text='<%# What to write here %>'/>
使用linq查询伴随着中继器。
请参阅下面的样本:
代码背后:
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>
使用 onItemDatabound 访问标签。
<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;
}
}
属性至少需要protected
,然后您可以在线访问它:
<asp:Label ID="lblsubjects" runat="server" Text='<%# MyStr %>' />
codebehind:
private string _MyStr = "MY Name";
protected string MyStr
{
get
{
return _MyStr;
}
set
{
_MyStr = value;
}
}
请注意,%#
仅用于数据框上下文。因此,标签的容器控件上必须有DataBind
的某个地方。如果不在GridView
中,而是在页面的顶层,则需要this.DataBind()
。