如何从标签调用函数后面的代码.文本在asp.net
本文关键字:代码 文本 net asp 标签 调用 函数 | 更新日期: 2023-09-27 17:49:38
我试图从标签后面调用代码中定义的函数。文本,但它不起作用。这里是代码….aspx文件中的代码
<asp:Label runat="server" Text='<%# GetPagingCaptionString() %>' ID="pagenumberLabel"></asp:Label>
代码块来自
后面的代码public string GetPagingCaptionString()
{
int currentPageNumber = Convert.ToInt32(txtHidden.Value);
int searchOrderIndex;
if (int.TryParse(Convert.ToString(Session["searchOrderIndex"]), out searchOrderIndex))
{
return string.Format("{0} to {1} orders out of {2}", (currentPageNumber * 20) + 1,
(currentPageNumber + 1) + 20, GetItemsCount(searchOrderIndex.ToString()));
}
return String.Empty;
}
谁能告诉我这里出了什么问题
除非您使用基于模板的控件(例如<asp:Repeater>
或<asp:GridView>
),否则您不能像在服务器端控件中那样使用内联代码块。
换句话说,您不能在服务器端控件(如<asp:Label>
)的属性中使用<%=%>
块。代码不会运行,您会发现代码实际上是作为呈现的HTML的一部分发送的。例外是允许<%#%>
代码块的数据绑定控件。
在这种情况下,您最好在代码背后设置.Text
属性。
例如在你的页面加载函数....
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
pagenumberLabel.Text = GetPagingCaptionString();
}
}
如果你给你的页面添加了一个属性,它将可以从你的aspx中访问,像这样:
<asp:Label runat="server" Text='<%= PagingCaptionString %>' ID="pagenumberLabel" />
NB <%= %>
标签而不是用于数据绑定控件的<%# %>
public string PagingCaptionString {
get {
int currentPageNumber = Convert.ToInt32(txtHidden.Value);
int searchOrderIndex;
if (int.TryParse(Convert.ToString(Session["searchOrderIndex"]), out searchOrderIndex))
{
return string.Format("{0} to {1} orders out of {2}", (currentPageNumber * 20) + 1,
(currentPageNumber + 1) + 20, GetItemsCount(searchOrderIndex.ToString()));
}
return String.Empty;
};
}