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

时间:2009-03-16 14:51:32

标签: asp.net javascript

我有一些像这样的代码

<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获得正确的回发)

4 个答案:

答案 0 :(得分:1)

Olav,模态窗口的技巧是隐藏ASP:按钮模式窗口之外。你可以在模态窗口中有一个常规的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>

<!-- 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>

答案 1 :(得分:1)

以编程方式调用控件的click()事件触发事件处理函数。你需要手动调用它....

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

答案 2 :(得分:0)

首先,你在这一行中犯了一个错误:

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

答案 3 :(得分:0)

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

(当然想要某种方式)

奥拉夫