Asp.net
如何使我的 ASP.NET 伺服器控制項將嵌入的程式碼塊作為屬性值?
我有一個具有 Title 屬性的自定義伺服器控制項。使用控制項時,我想在 aspx 頁面中設置標題的值,如下所示:
<cc1:customControl runat="server" Title='<%= PagePropertyValue%>' > more content </cc1:customControl>但是,當我這樣做時,我得到的是確切的字元串 <%= PagePropertyValue%> 正在顯示,而不是我希望看到的屬性值。
所以在嘗試了數據綁定表達式之後(如下所示)。我沒有得到看起來很糟糕的字元串文字,但我也沒有得到任何其他東西。
<cc1:customControl runat="server" Title='<%# PagePropertyValue%>' > more content </cc1:customControl>我需要對我的自定義控制項做些什麼來獲取這種值?或者我需要對頁面做些什麼。
你不能。<%= %> 將字元串直接寫入響應流,這發生在構造伺服器控制項之後。請參閱此文章以獲取解釋。
因此,正如 Zachary 所建議的那樣,它要麼是程式碼隱藏,要麼是 <%# + 數據綁定。
作為我自己的問題的後續,我發現我真正想要的是使用 <%$ 語法使用 ASP.NET 表達式,因為我想要做的是放入本地化的內容中。
這可以在伺服器控制端顯然沒有額外處理的情況下完成。
<cc1:customControl runat="server" Title='<%$ Resouces: ResourceFile, ContentKey %>' > more content and controls </cc1:customControl>這工作得很好。