【问题标题】:getting error when clicking a button by javaScript to call codeBehind function通过 javaScript 单击按钮以调用 codeBehind 函数时出现错误
【发布时间】:2012-12-11 23:50:36
【问题描述】:

我需要从 JavaScript 调用一些 codeBehind 函数。为此,我有一个隐藏按钮 (asp:Button)。

当我从 javaScript 中单击此按钮时:

var btn = document.getElementById("btnHidden");
btn.click(); 

我遇到了一个错误:

System.Web.HttpException: The state information is invalid for this page and might be corrupted. 

你能帮帮我吗?

【问题讨论】:

标签: javascript asp.net code-behind


【解决方案1】:

我试过这样并且正在工作

aspx

<head runat="server">
    <title>Untitled Page</title>
    <script language="javascript" type="text/javascript">
        function btnClick()
        {
            alert("clicked!!!");

            var btn=document.getElementById('<%=Button1.ClientID%>');
            btn.click();
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        test page
        <input type="button" id="btn" onclick="btnClick()" value="Click" />

        <asp:Button ID="Button1" style="display:none" runat="server" Text="Button" OnClick="Button1_Click" />

    </div>
    </form>
</body>

aspx.cs

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

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

    }
}

在第一个按钮客户端单击中,我尝试引发第二个按钮单击事件。

【讨论】:

    【解决方案2】:

    首先你必须用css而不是服务器端隐藏这个按钮,我的意思是display:none不是Visible=false;

    像这样:

    Button1.Attributes.CssAttributes.Add("Display","None");
    

    那么你应该使用ClientID

    document.getElementById('<%=Button1.ClientID%>').click();
    

    尝试在按钮上设置UseSubmitBehaviour=false

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      您可以编辑您的 Web.config 文件:

      <pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never"> 
      

      查看blog了解详情。

      【讨论】:

        【解决方案4】:

        应该是这样的,

        var btn = document.getElementById('').value;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-10-01
          • 2018-03-20
          • 2015-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-03
          • 2020-12-22
          相关资源
          最近更新 更多