你如何在asp.net中获得如下所示的内容?
<asp:Label runat="server" Text="The '<%# CustomValue %>' you assigned."/>
如果您真的想这样做,请在服务器标签内写入字符串。
<asp:Label runat="server" Text='<%# "The " + CustomValue + " you assigned." %>'/>
但是,如果Label不在GridView,Repeater等内部,则必须手动调用DataBind
。
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}
这通常取决于您的Label所在的位置。如果它是一个单独的控件,而不是嵌套在转发器中,你只需在代码后面设置你的代码:
Label1.Text = $"The {CustomValue} you assigned.";
如果标签嵌套在某种Repeater控件的ItemTemplate中,则可以将其强类型化为objects属性:
<asp:Repeater runat="server" ID="MyRepeater" ItemType="WebFormsSandbox.Person">
<ItemTemplate>
<li>
<a href="~/Persons/<%#:Item.Id%>"><%#: Item.FirstName %> <%#: Item.LastName %></a>
</li>
</ItemTemplate>
</asp:Repeater>
以及相应的代码:
protected void Page_Load(object sender, EventArgs e)
{
MyRepeater.DataSource = Persons();
MyRepeater.DataBind();
}
IEnumerable<Person> Persons()
{
for (int i = 0; i < 10; i++)
{
yield return new Person { Id= i, FirstName = $"Foo{i}", LastName = $"Bar{i}" };
}
}
这将创建一个链接列表,然后您可以在其中执行任何操作。这是否会弹出自定义窗口或进行回发..由您决定。
您通常会在页面加载后面的代码中执行此操作,除非您使用的是数据网格或转发器控件。为控件分配ID并像这样引用它。
<asp:Label runat="server" ID="Label1" />
protected void Page_Load(object sender,EventArgs e)
{
Label1.Text = "Your Value";
}