ASP.NET在javascript中调用ASP.NET按钮服务器事件
我有一个ASP.NET页面,其中有一个ASP.NET按钮控件和一个普通html链接(anchor tage)。我想在有人单击链接时调用ASP.NET按钮控件的postbackl事件 我使用了下面的代码ASP.NET在javascript中调用ASP.NET按钮服务器事件,asp.net,events,Asp.net,Events,我有一个ASP.NET页面,其中有一个ASP.NET按钮控件和一个普通html链接(anchor tage)。我想在有人单击链接时调用ASP.NET按钮控件的postbackl事件 我使用了下面的代码 <a href="javascript:myFunction();" class="checkout" ></a> <asp:Button ID="btnCheckout" runat="server" Visible="false" onclick="btnCh
<a href="javascript:myFunction();" class="checkout" ></a>
<asp:Button ID="btnCheckout" runat="server" Visible="false"
onclick="btnCheckout_Click" />
但是当运行这个时,我得到一个错误,比如doPostBack未定义
有人能告诉我为什么吗
提前感谢无论如何,这是行不通的。当您使用“Visible=”false“使.NET控件不可见时,它不会呈现,这意味着在客户端不可用 回到你的问题上来。 1-myFunction在哪里定义?在标签之间? 2-页面上是否有更多的.NET控件?如果没有任何其他.NET控件,.NET不会添加回发和其他内容所需的所有脚本 为什么不执行以下操作(基于Villageidiot答案):
在上面的例子中,你不需要假按钮,而是让它不可见。你仍然可以做回发。我想说的是更干净的方法。首先,我尝试了你的代码,也没有得到类似于\u doPostBack的东西,然后我在页面上添加了另一个按钮,它是可见的,但都是一样的。然后我添加了一个链接按钮,并得到了\uu doPostBack方法。您可以从javascript发回帖子,但问题是,因为它不允许这种事情。我不得不用以下方法来克服它,而且它奏效了:
protected override void Render(HtmlTextWriter writer)
{
ClientScript.RegisterForEventValidation(
new PostBackOptions(btnCheckout, "OnClick"));
base.Render(writer);
}
我觉得我的回答有点语无伦次,所以我将其标记为wiki:)
<asp:LinkButton ID="lbtnCheckout" runat="server" CausesValidation="false" OnClick="lbtnCheckout_Click" CssClass="checkout" />
protected override void Render(HtmlTextWriter writer)
{
ClientScript.RegisterForEventValidation(
new PostBackOptions(btnCheckout, "OnClick"));
base.Render(writer);
}