从服务器端调用客户端功能,我想要ASP.NET ajax

时间:2012-09-25 13:28:24

标签: asp.net ajax

我有客户端按钮事件。如果我可以签署PDF,请点击调用sgnPdf(ID)。

[MyForm.aspx]

 <script type="text/javascript">
    <% if (ViewData.CanSignPdf){ %>
    $(function() {
        $("#<%=btnSend.ClientID %>").click(function() {
            if ($('.IgnoreCheckBox').is(':checked')) {
                sgnPdf(<%=ViewData.NoticeID %>);
                return false;
            };
        });
    });
    <% } %>
</script>

但是我需要在点击按钮后从服务器端调用此函数。

[MyForm.aspx.cs]

  protected void BtnSendClick(object sender, EventArgs e)
    {
        FormUnbindData();
        SaveMYData();
        //Here i want call client function sgnPdf(ID). How can I do this?
        ShowMyMessage();
    }

好的,你只需简单地做。例如,呼叫提醒(&#34;消息&#34;)。


好的,它的作品!但我需要同步从服务器端(C#)调用客户端方法(javascript),因为客户端方法在服务器端方法结束之前不会启动(例如button_click事件)。


我试试这个:

            ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "anyId", "<script type='text/javascript'>alert('This is my alert message');</script>", true);

没有动作,没有。

3 个答案:

答案 0 :(得分:1)

按钮点击时使用此项:

 ClientScript.RegisterClientScriptBlock(Page, typeof(Page),sgnPdf(ID), true); 

OR
    <asp:Button OnClientClick = "sgnPdf(ID)"/>

在页面加载时使用此功能:

RegisterStartupScript("Unique key", "sgnPdf(ID);"); 

这是Reference

答案 1 :(得分:1)

尝试以下....

protected void BtnSendClick(object sender, EventArgs e)
     {
         FormUnbindData();
         SaveMYData();
         **Edit**
         ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "anyId", "<script language='javascript'>sgnPdf('"+ID+"');</script>", true);            

         ShowMyMessage();
     } 

答案 2 :(得分:0)

如果您在页面上使用UpdatePanel,则可以使用ScriptManager从服务器端调用客户端功能.RegisterStartupScript

在按钮点击事件中使用以下代码

ScriptManager.RegisterStartupScript(this, this.GetType(), "script234", "sgnPdf('"+ID+"');", true);

如果您未在页面上使用UpdatePanel,则可以使用ClientScript从服务器端调用客户端功能.RegisterStartupScript

在按钮点击事件中使用以下代码

ClientScript.RegisterStartupScript(this.GetType(), "script234", "sgnPdf('"+ID+"');", true);