[英]Inline code not being interpreted correctly when in server-side attribute
請使用以下代碼:
<asp:TextBox ID="txtFirstName" runat="server" title='<%=Resources.Constants.EmptyFirstName%>' /><em>*</em>
這實際上生成了<%=Resources.Constants.EmptyFirstName%>
的title屬性,而不是執行代碼(因此返回正確的值)。
這有什么理由嗎? 有修復嗎?
為什么不簡單地在代碼隱藏文件中設置屬性值?
txtFirstName.Attributes.Add("title",Resources.Constants.EmptyFirstNam);
服務器端控件不能使用解釋標記'<%=%>'。 在后面的代碼中設置值更容易,但如果你真的想要aspx中的邏輯,你可以使用數據綁定表達式:
在您的aspx上,將您的標記更改為數據綁定標記:
<asp:TextBox ID="txtFirstName" runat="server" title='<%#=EmptyName()%>' /><em>*</em>
在您的代碼中添加此函數:
public string EmptyName() {
return Resources.Constants.EmptyFirstName
}
這很麻煩,因為你仍然需要調用txtFirstName.DataBind()
為什么不在CodeBehind文件中設置OnInit中的值?
如果您決定在aspx文件中執行此操作而不是后面的代碼,請查看有關Expression Builders的文章: http : //www.4guysfromrolla.com/articles/022509-1.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.