3

我有一个 TabPanel,我想使用函数后面的代码设置其 HeaderText 属性,例如。

<asp:TabPanel ID="id" runat="server" HeaderText='<%= String.Format("{0}","some text") %>'>  

我不能将函数调用放在开始和结束标记之间,因为它是一个 TabPanel,但是当我执行上述操作时,我只会在页面上得到一个空标题。我也试过 <%# %> (我不确定两者之间的区别)。

String.Format 只是一个例子,而不是我试图调用的真正函数。

4

2 回答 2

2

我知道有些属性不支持内联语法,不幸的是,这可能就是其中之一。语法看起来不错,这让我认为可能是这种情况。要解决此问题,只需HeaderText在代码隐藏中设置。

至于 和 之间的区别<%= ... %><%# ... %>后者严格用于数据绑定语法:

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <%# Eval("SomeValue") %>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

编辑

实际上有一种我以前没有想到的更简单的方法。只需使用HeaderTemplate动态设置列标题文本:

<Columns>
    <asp:TemplateField>
        <HeaderTemplate>
            <%# Eval("SomeHeaderValue") %>
        </HeaderTemplate>
        <ItemTemplate>
            <%# Eval("SomeValue") %>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
于 2012-05-11T18:47:32.420 回答
0

尝试:

HeaderText='<%# TabPanel_HeaderText %>'

在后面的代码中

protected string TabPanel_HeaderText
{
    get { return String.Format("{0}","some text"); }
}
于 2012-05-11T18:46:49.897 回答