无法使用aspx页面中的c#代码设置标记/属性值

时间:2010-11-30 02:42:48

标签: c# asp.net

我有一个自定义.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;%#但没有运气。谢谢!

1 个答案:

答案 0 :(得分:3)

Page_Load方法中,您可以执行以下操作:

bunchOfContent.contentPayload = getRegionID();

<%# ... %>不起作用的原因是因为这是用于数据绑定的形式。为了让您执行的代码被执行,您需要在某处调用DataBind()方法。至于<%= ... %>,这不适合设置服务器控件属性,它只是<% Response.Write(...) %>的简短形式。