我有一个TabPanel,其HeaderText属性我想使用函数后面的代码来设置 例如
<asp:TabPanel ID="id" runat="server" HeaderText='<%= String.Format("{0}","some text") %>'>
我不能把函数调用放在开始和结束标记之间,因为它是一个TabPanel,但是当我这样做时,我只是在页面上得到一个空标题。我也试过&lt;%#%&gt; (我不确定两者之间的区别。)
String.Format只是一个例子,而不是我想要调用的真实函数。
答案 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"); }
}