2013-10-21 23 views
2

在我的网页的onLoad()函数,我禁用所有控件的页面上按以下方式的IsPostBack始终为假按钮后,点击

var form = document.getElementById("form1"); 
var elements = form.elements; 
for (var i = 0, len = elements.length; i < len; ++i) { 
    elements[i].disabled = true; 
} 
document.getElementById('btnReactivate').disabled = false; 

我需要启用(btnReactivate以上)的页面上的一个按钮。我遇到的问题是,只要点击按钮并进入Page_Load事件,Page.IsPostback总是为false,并且代码后面的onclick事件也不会触发。按钮创建

<asp:Button runat="server" ID="btnReactivate" Text="btnReactivate" onclick="btnReactivate_Click" width="80px" meta:resourcekey="btnReactivateResource1" /> 

和事件处理程序,所以

protected void btnReactivate_Click(object sender, EventArgs e) 
{} 

这可能是另外值得一提的是,我已经试过禁用表单元素在几个不同的方式,包括刚刚在输入循环通过控制,而不是所有元素

+0

问题是,onclick始终使用完整的回发。你是否试图将你的表单放入更新面板? –

回答

3

我认为这是因为禁用控件不会回发到服务器(从而防止检测到回发)。

您应该使控件Readonly。或者在发布之前重新启用它们的客户端。

http://www.w3.org/TR/html401/interact/forms.html#adef-disabled

残疾人控件不能成功。

,并http://www.w3.org/TR/html401/interact/forms.html#adef-readonly

只读元素可能会成功。

+0

但是因为我没有禁用btnReactivate按钮,所以上面的注释是否适用? – user48408

+0

其实我试图重新启用客户端,它似乎已经工作:) – user48408