禁用asp.net上的回发按钮单击

时间:2012-03-12 18:16:20

标签: asp.net

我想在按钮的onClick事件上禁用回发。

我在网上进行了一些研究,大多数人正在使用onClientClick并使用javascript。有没有办法在onClick上调用asp.net函数“btnCommit_Click”而不是使用onclientclick并使用javascript?

如果没有,我怎样才能将asp.net功能与javascript合并?

<asp:Button ID="btnCommit" runat="server" Text="Save" TabIndex="5" 
    onclick="btnCommit_Click" />

修订版 的 我有一个包含复选框的GridView,一旦用户进行更改并单击“保存按钮”,就会发生回发,并且我放弃了对复选框所做的所有选择我正在考虑禁用按钮的OnClick事件上的回发会解决这个问题...

7 个答案:

答案 0 :(得分:3)

我没有完全得到你想要实现的目标。但是如果你想在一个asp.net按钮上同时使用js和服务器端,请同时使用OnClientClickOnclick。如果要取消回发,请在OnClientClick js函数中返回false。这样,永远不会调用服务器端OnClick事件。否则,返回true并发生回发 的更新
根据注释并进行更新,如果要在gridview中保留复选框的状态,则必须避免覆盖可能影响Page_Load事件中控件状态的任何内容。这只是意味着您必须在Page_Load事件中检查(IsPostback),如果是真的,您不应对UI元素执行任何操作,否则您将失去其状态。

答案 1 :(得分:1)

听起来你的问题不是把你的数据绑定和页面设置放在第一页加载的检查中。

http://msdn.microsoft.com/en-us/library/system.web.ui.page.ispostback.aspx

private void Page_Load()
{
    if (!IsPostBack)
    {
        // Do your databinding etc here to stop it occuring during postback
    }
}

答案 2 :(得分:0)

虽然您只能将VBScript与Internet Explorer一起使用(我不相信任何其他浏览器支持它),但这被认为是不好的做法。要运行VB / C#.net,您必须对服务器进行某种回发/回调。除此之外,使用Javascript。

答案 3 :(得分:0)

  

我有一个包含复选框的GridView,一旦用户制作了它们   更改并单击“保存按钮”后退发生,我松了   对复选框进行的所有选择

您必须将Page_Load置于Page.IsPostback期间,将其值设为false,如下所示。

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        //Your code
    }
}

单击按钮后,这不会导致您松开网格复选框。


您的GridView EnableViewState must be True


您的模板字段必须位于设计器页面

答案 4 :(得分:0)

如果要将表单数据发送到服务器端函数,请不要将Autopostback=true用于任何表单控件

* 表单页 *

 asp:Button ID="btn" runat="server" Text="Post Scrap" OnClick="btn_Click"  

* 服务器端 *

Sub btn_Click()

//代码在这里

End Sub

答案 5 :(得分:0)

在我的大多数情况下,我所做的是将按钮转换为

       <input type='button' /> 

这样我就可以通过javascript或jquery访问它了。这可能不是你的情况很难。

答案 6 :(得分:0)

如果您不想在单击asp按钮时页面加载或回发页面,则只需将名为CausesValidation的属性更改为false。