ASP.NET数据绑定设置按钮禁用失效问题求助
问题原因与解决方案
问题根源
你用<%# %>定义的是数据绑定表达式,这类表达式不会自动执行,必须显式触发数据绑定操作,ASP.NET才会解析计算这些表达式的值并应用到控件属性上。由于你的代码中没有调用任何DataBind()方法,按钮1、2、3的Enabled属性始终使用默认值true,只有硬编码Enabled="false"的按钮5生效。
同时,属性的断点没触发也是因为绑定表达式未执行,属性的get方法根本没被调用。
解决方案
有两种方式触发数据绑定:
1. 页面级全局触发
在Page_Load方法中调用Page.DataBind(),会触发页面上所有控件的数据绑定表达式:
修改Default.aspx.cs的Page_Load方法:
protected void Page_Load(object sender, EventArgs e) { Page.DataBind(); }
2. 单个控件单独触发
如果只想触发特定按钮的绑定,可以针对每个按钮调用DataBind():
protected void Page_Load(object sender, EventArgs e) { Button1.DataBind(); Button2.DataBind(); Button3.DataBind(); }
验证结果
修改后,按钮1、2、3、5都会被禁用,按钮4保持启用,符合你的预期。
内容的提问来源于stack exchange,提问作者jason44107
相关产品推荐
相关产品推荐

