我有一个自定义.ascx控件,并希望使用代码设置其中一个属性。在.aspx我有这个:
<uc1:CustomContent ID="bunchOfContent" runat="server" contentPayload='<%# getRegionID() %>' />
在代码隐藏中我有:
public partial class Region : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
... things
}
public string getRegionID()
{
//return "region_" + Request["region"];
return "thevalueIwant";
}
但是,我没有填充我想要的值,也没有调用代码(不会触发断点)。
我做错了什么?我已尝试过各种更改,例如将引号从“更改为”更改为无引号。此外,我使用了&lt;%=而不是&lt;%#但没有运气。谢谢!
答案 0 :(得分:3)
在Page_Load
方法中,您可以执行以下操作:
bunchOfContent.contentPayload = getRegionID();
<%# ... %>
不起作用的原因是因为这是用于数据绑定的形式。为了让您执行的代码被执行,您需要在某处调用DataBind()
方法。至于<%= ... %>
,这不适合设置服务器控件属性,它只是<% Response.Write(...) %>
的简短形式。