1

我有一个关于禁用按钮 (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 (disable, enable) 来标记禁用按钮,在 btn_click 方法中,我检查CommandName== "disable"然后停止该功能,但它非常混乱。

谢谢你的帮助。

4

3 回答 3

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" />
于 2013-01-03T03:49:56.087 回答
3

您无法控制用户的行为。您需要做的是在服务器端处理这些事情。

你可以在btn_click中判断按钮的状态..然后做一些工作

于 2013-01-03T03:39:57.427 回答
0

@旁观者是对的。您需要在服务器上检查该条件是否正确。你不能指望客户是 100% 万无一失的,这就是原因。

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

于 2013-01-03T03:50:45.717 回答