数据绑定以及ASP.NET中的值

问题描述 投票:1回答:3

你如何在asp.net中获得如下所示的内容?

<asp:Label runat="server" Text="The '<%# CustomValue %>' you assigned."/>
asp.net
3个回答
1
投票

如果您真的想这样做,请在服务器标签内写入字符串。

<asp:Label runat="server" Text='<%# "The " + CustomValue + " you assigned." %>'/>

但是,如果Label不在GridView,Repeater等内部,则必须手动调用DataBind

protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}

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
投票

您通常会在页面加载后面的代码中执行此操作,除非您使用的是数据网格或转发器控件。为控件分配ID并像这样引用它。

<asp:Label runat="server" ID="Label1" />

protected void Page_Load(object sender,EventArgs e) 
{
    Label1.Text = "Your Value";
}
© www.soinside.com 2019 - 2024. All rights reserved.