我有一个aspx
,它有一个服务器控件TextBox
<asp:TextBox placeholder="myPlaceholder" ID="myID" runat="server" />
我想有条件地设置HTML5属性占位符。
我试过这个但没有成功,因为服务器控件不能有<% %>
<asp:TextBox <% if(this.ShowVatNumberCodePlaceholder) { %>placeholder="myPlaceholder" runat="server" ID="myID" <%}%> />
受我的WPF知识的启发,我在黑暗中用这个
拍摄<asp:TextBox ID="sttxBillToVatNumber" MaxLength="10" runat="server">
<% if (this.ShowVatNumberCodePlaceholder)
{
%>
placeholder="myPlaceholder"
<%
}
%>
</asp:TextBox>
从我的阅读材料中我想我只能在服务器端执行此操作 - 我这样做并且有效。
但我宁愿在aspx中使用这个逻辑,以避免在两个文件中分散表示逻辑。
我能否在aspx
本身中实现这一目标?
答案 0 :(得分:1)
尝试使用JQuery关联占位符。类似的东西:
$(function () {
<% if (this.ShowVatNumberCodePlaceholder)
{
$("#<%sttxBillToVatNumber.ClientID"%>").attr("placeholder","myPlaceholder");
}
%>
});
答案 1 :(得分:1)
您可以通过三元运算符和DataBind调用的组合实现此目的。
标记
<asp:TextBox ID="sttxBillToVatNumber" runat="server"
MaxLength="10"
placeholder='<%# this.ShowVatNumberCodePlaceholder ? "my_placeholder" : "my_other_placeholder" %>'>
</asp:TextBox>
背后的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
sttxBillToVatNumber.DataBind();
}
}