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

时间:2017-12-21 16:12:25

标签: asp.net

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

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

3 个答案:

答案 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();
}