2010-11-17 20 views
0

我不知道爲什麼這不起作用。Response.Write在服務器控件屬性中不起作用?

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

我只想兩個資源結合起來的字符串作爲標籤的文本?

+0

不要只是說它不工作,請告訴我們發生了什麼*。 – 2010-11-17 07:51:38

+0

這只是打印服務器標籤。不執行 – Lalit 2010-11-17 07:59:08

+0

其實我們有gridview,並且爲了設置heddertext屬性,我們使用<%$來從資源綁定它,現在我有特殊的scenerio需要將兩個資源鍵與換行符結合起來,我不知道兩個資源鍵可以如何與表達式綁定,這就是爲什麼我使用<%=有任何想法如何完成這個 – Lalit 2010-11-17 09:05:13

回答

5

使用數據綁定來代替Text='<%# String.Format(...) %>',並確保在代碼中某處調用了DataBind()。

+0

是的,但爲什麼<%=不工作,我認爲這是response.write的快捷方式 – Lalit 2010-11-17 07:59:52

+0

我認爲這是因爲服務器控制被初始化在頁面之前,因此Response對象尚未準備好。 '<%# ... %>'標籤做了'後期綁定'。 – 2010-11-17 08:19:12

+0

這種靈魂似乎適合所有人。 – Lalit 2010-11-17 11:59:21

0

如果一個服務器控件,最好是使用代碼隱藏並設置標籤的文本中Page_Load事件處理程序:

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

你不能設置一個服務器控件的屬性與<%= %>語法。將代碼的Text屬性設置爲後面,或者使用該語法,但不使用Label。

相關問題