0
protected void addSchoolButtonClick(object sender, ImageClickEventArgs e)
    {

        Page.ClientScript.RegisterStartupScript(GetType(), "MyKey1", "SchoolSearchPopUp();", true);

        /*Some code*/
    }

我正在asp.net中开发一个网站。在超链接onclick事件中我想调用一个javascript function"SchoolSearchPopUp()"。这个函数用于创建一个新的弹出窗口并且它工作正常。但我的问题是,一个javascript函数正在调用或弹出窗口仅在执行该函数中的其余代码后打开,并且该代码需要一些由于弹出窗口而发生的数据。如何在执行该函数中的其余代码之前创建弹出窗口。

4

4 回答 4

0

您需要先在页面上编写 JavaScript 来处理按钮的单击,然后调用服务器上的页面方法。将 OnClientClick 属性添加到您的按钮元素并从那里运行您的 JavaScript 方法:

<asp:Button ID="TestButton" OnClientClick="SchoolSearchPopup()" Text="Click Me" OnClick="addSchoolButtonClick" runat="server"/>

<script type="text/javascript">
    function SchoolSearchPopup()
    {
        alert("Popup");
    }
</script>
于 2013-01-18T15:00:02.500 回答
0

我不认为可以从后面的代码中调用 javascript。C# 从服务器运行,java 是所有客户端。这里有一个类似问题的很好解释:http ://forums.asp.net/t/1117189.aspx

如果您需要执行 javascript 函数,您可以尝试将超链接更改为按钮并使用 OnClientClick 属性。这执行脚本客户端而不是调用服务器上的方法。

     <asp:button id="Button1"
                 text="Click Here"
                 onclientclick="SchoolSearchPopUp()"
                 runat="server" />

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick.aspx

于 2013-01-18T14:58:42.747 回答
0

如果您想在回发之前执行一些 javascript,您需要将超链接的点击事件注册到 js 方法,然后在执行您希望运行的任何客户端逻辑后将您的帖子提交到服务器。(不是相反,使用 RegisterStartupScript)

例子:

$("#myHyperLink").click(function() {

    // do page logic, in your case show a modal window
    $("#myModalDivContainer").show();


    // submit your post to the server... replace targetClientID with ID of server control you're posting to
    __doPostBack('targetClientID', '');

   // NOTE: If you want to perform an AJAX request instead simply use some jQuery here instead. it's up to you how to handle the request from this point :)

});

希望这可以帮助!

于 2013-01-18T15:01:48.357 回答
0

将您的回发触发器更改为弹出窗口中的内容。

于 2013-01-18T14:45:49.200 回答