我需要从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.
你能帮我吗?
答案 0 :(得分:2)
我试过这样并正在工作
<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>
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)
{
}
}
在第一个按钮客户端中单击我试图引发第二个按钮单击事件。
答案 1 :(得分:1)
首先你必须用css而不是服务器端隐藏这个按钮,我的意思是display:none
而不是Visible=false;
Button1.Attributes.CssAttributes.Add("Display","None");
然后你应该使用ClientID
document.getElementById('<%=Button1.ClientID%>').click();
尝试在按钮上设置UseSubmitBehaviour=false
希望这会有所帮助
答案 2 :(得分:0)
您可以编辑Web.config文件:
<pages validateRequest="false" enableEventValidation="false" viewStateEncryptionMode ="Never">
查看此blog了解详情。
答案 3 :(得分:0)
应该是这样的,
var btn = document.getElementById('&lt;%= btnHidden.ClientID%&gt;')。value;