You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET WebForms运行时生成placeholder属性失败问题排查

问题原因及解决办法

核心问题

你用的<%# %>是数据绑定表达式,这种语法不会自动解析,必须显式触发数据绑定操作,否则服务器不会处理这个表达式,自然不会生成placeholder属性。

解决方法

方法1:显式触发数据绑定

在后台代码(比如Page_Load事件)里调用控件或页面的DataBind()方法:

protected void Page_Load(object sender, EventArgs e)
{
    // 仅绑定目标控件
    txtDate1.DataBind();
    // 也可以绑定整个页面及所有子控件
    // Page.DataBind();
}

方法2:后台动态设置placeholder属性

直接在后台代码里给TextBox的Attributes集合添加placeholder属性,无需绑定表达式:

protected void Page_Load(object sender, EventArgs e)
{
    txtDate1.Attributes.Add("placeholder", DateTime.Now.ToString());
}

方法3:改用直接输出表达式(注意局限性)

如果不想编写后台代码,可替换为<%= %>直接输出表达式,但这种方式在服务器控件属性中使用时存在兼容性风险,写法如下:

<asp:TextBox type="text" placeholder='<%= DateTime.Now.ToString() %>' autocomplete="off" required="required" CssClass="form-control" runat="server" ID="txtDate1" aria-describedby="sizing-addon1" />

更推荐前两种方法,尤其是方法2,逻辑清晰且避免数据绑定的额外开销。


内容的提问来源于stack exchange,提问作者Megrez7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:12:04