你如何在asp.net中获得如下所示的内容?
<asp:Label runat="server" Text="The '<%# CustomValue %>' you assigned."/>
答案 0 :(得分:2)
这通常取决于您的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}" };
}
}
这将创建一个链接列表,然后您可以在其中执行任何操作。这是否会弹出自定义窗口或进行回发..由你决定。
答案 1 :(得分:1)
除非您使用的是数据网格或转发器控件,否则通常会在页面加载后面的代码中执行此操作。为控件分配ID并像这样引用它。
{{1}}
答案 2 :(得分:1)
如果您真的想这样做,请在服务器标签内写下字符串。
<asp:Label runat="server" Text='<%# "The " + CustomValue + " you assigned." %>'/>
但是,如果Label不在GridView,Repeater等内部,则必须手动调用DataBind
。
protected void Page_Load(object sender, EventArgs e)
{
DataBind();
}