【问题标题】:Response.Write not working inside server control property?Response.Write 在服务器控件属性中不起作用?
【发布时间】:2011-05-11 06:50:48
【问题描述】:

我不确定为什么这不起作用。

<asp:Label ID="lblTitle1" runat="server" Text='<%= string.Format("{0} <br /> {1}","Part 1", "Part 2") %>' ></asp:Label>

我只想将两个资源字符串组合为标签文本?

【问题讨论】:

  • 与其说它不起作用,不如告诉我们发生了什么
  • 只是打印服务器标签。不执行
  • 实际上我们有 gridview,并且为了设置 heddertext 属性,我们使用

标签: .net asp.net servercontrols


【解决方案1】:

您不能使用&lt;%= %&gt; 语法设置服务器控件的属性。要么从后面的代码中设置 Text 属性,要么只使用 &lt;%= %&gt; 语法,不带标签。

【讨论】:

    【解决方案2】:

    如果是服务器控件,最好使用代码隐藏并在Page_Load事件处理程序中设置标签的文本:

    protected void Page_Load(object sender, EventArgs e) 
    {
        lblTitle1.Text = String.Format("{0} <br /> {1}","Part 1", "Part 2");
    }
    

    【讨论】:

      【解决方案3】:

      改用数据绑定 Text='&lt;%# String.Format(...) %&gt;' 并确保在代码中的某处调用 DataBind()。

      【讨论】:

      • 是的,但是为什么
      • 我认为是因为服务器控件在页面之前初始化,因此响应对象还没有准备好。而&lt;%# ... %&gt; 标签执行“后期绑定”。
      • 这个灵魂似乎所有人都能接受。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      • 2014-06-18
      • 2011-12-23
      相关资源
      最近更新 更多