如何在服务器标记中的aspx文件中调用函数后面的代码

时间:2012-05-11 18:39:49

标签: c# asp.net html

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

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

我不能把函数调用放在开始和结束标记之间,因为它是一个TabPanel,但是当我这样做时,我只是在页面上得到一个空标题。我也试过&lt;%#%&gt; (我不确定两者之间的区别。)

String.Format只是一个例子,而不是我想要调用的真实函数。

2 个答案:

答案 0 :(得分: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>    

答案 1 :(得分:0)

尝试:

HeaderText='<%# TabPanel_HeaderText %>'

在Code背后

protected string TabPanel_HeaderText
{
    get { return String.Format("{0}","some text"); }
}