繁体   English   中英

模拟点击 ASP.NET 按钮的问题

[英]Problems simulating click of ASP.NET button

我有一些这样的代码

<asp:Button ID="cancelDummyButt" runat="server" CausesValidation="False" 
    Text="cancel" onclick="cancelDummyButt_Click" Enabled="True" />

(Javascript:)

buttid = '<%=cancelDummyButt.ClientID.ToString%>';
eltoclick = document.getElementById(buttid);
eltoclick.click();

不调用服务器端代码。 怎么了? 在“点击”之前一切正常。 调试的最佳方法是什么?

(这是为了从更新面板中的 iframe 获得正确的回发)

奥拉夫,模态 windows 的诀窍是在模态 window之外有一个隐藏的 ASP:按钮。 您可以在模态 window 内有一个常规的 html 按钮,单击该按钮时,会为隐藏的 ASP:Button 控件调用 __doPostback('', '') 方法。 这与实际单击 ASP 按钮的效果相同。

 <.-- start modal dialog div --> <input type="button" onclick="__doPostBack('<%= btnDoIt,UniqueID %>';''):" value="Do It:" /> <;-- end modal dialog div --> <asp:Button id="btnDoIt" style="display:none;" runat="server"></asp:Button>

以编程方式调用控件的 click() 事件不会触发事件处理程序 function。 您需要手动调用它....

if(eltoclick.onclick())
  eltoclick.click();

首先,你在这一行有一个错误:

buttid = '<%= cancelDummyButt.ClientID.ToString() %>';

我的建议是,将您的 javascript 代码放在后面的代码中,然后像这样注册到页面:

string script = string.Format("var buttid = '{0}';", cancelDummyButt.ClientID);
if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
{
    ClientScript.RegisterClientScriptBlock(typeof(_Default), "myScript", script, true);
}

已解决 - 这是由模态 jQuerywindow 引起的!

(当然,想要一些解决方法)

奥拉夫

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM