javaScript在点击按钮调用codeBehind函数时出现错误

getting error when clicking a button by javaScript to call codeBehind function

本文关键字:函数 错误 codeBehind 调用 按钮 javaScript      更新时间:2023-09-26

我需要从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. 

你能帮帮我吗?

我试过了,效果很好

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)
    {
    }
}

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

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

像这样:

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

那么你应该使用ClientID

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

尝试设置UseSubmitBehaviour=false按钮

希望能有所帮助

您可以编辑您的Web。配置文件:

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

查看此博客了解详情

应该是这样的,

var btn = document.getElementById('<%= btnHidden;ClientID %> ') value;