通过使用firebug删除“禁用”属性来启用C#中的按钮

时间:2013-01-03 03:30:56

标签: c# asp.net

我有一个关于禁用按钮(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 ==“禁用”然后停止该功能,但它非常混乱。

感谢您的帮助。

3 个答案:

答案 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%傻瓜证明,这就是原因。

您可以隐藏控件,并在将来的回发中重新启用它吗?隐藏实际上并不会将控件呈现给客户端。