我有一个关于禁用按钮(C#)的问题,我需要你的帮助。
在Asp.net(C#)中,禁用按钮代码:
Button btn = new Button();
btn.click += new EventHandler(btn_click);
btn.Enabled = false;
btn.UseSubmitBehavior = false;
生成的HTML:
< input type =“button”disabled =“disabled”>
按钮被禁用,直到我使用 firebug 并删除'禁用'属性并更改要提交的类型属性( < input type =“submit”> )然后用户可以点击btn,它可以执行 btn_click 方法(回发)。
我们怎样才能防止这个问题?我尝试使用CommandName(禁用,启用)来标记禁用按钮和btn_click方法,我检查 CommandName ==“禁用”然后停止该功能,但它非常混乱。
感谢您的帮助。
范
答案 0 :(得分:4)
客户端可以删除Disabled属性但不能更改控件ViewState。在服务器端,您可以这样做:
protected void btn_Click(object sender, EventArgs e)
{
if (btn.Enabled)
{
// do something
}
}
<asp:Button ID="btn" runat="server" Enabled="false" OnClick="btn_Click" Text="Test" />
答案 1 :(得分:3)
您无法控制用户的行为。您需要做的是在服务器端处理这些事情。
你可以在btn_click中判断按钮的状态..然后做一些工作
答案 2 :(得分:0)
@bystander是对的。您需要在服务器上检查该条件是否正确。你不能依赖客户100%傻瓜证明,这就是原因。
您可以隐藏控件,并在将来的回发中重新启用它吗?隐藏实际上并不会将控件呈现给客户端。