簡體   English   中英

從后面的代碼調用javascript方法

[英]Calling a javascript method from the code behind

我需要使用后面的代碼中的參數調用JavaScript方法。

Javascript方法

  <script type="text/javascript">
       function changeControlSample(path) 
       {
          $find('<%= PartialUpdatePanel7.ClientID %>').set_UserControlPath(path);
          $find('<%= PartialUpdatePanel7.ClientID %>').refresh();
       }
    </script>
<iucon:PartialUpdatePanel runat="server" ID="PartialUpdatePanel7" 
                        DisplayLoadingAfter="500" InitialRenderBehaviour="Clientside" EncryptUserControlPath="false">
                        <LoadingTemplate>

                             <div style="margin-left: 84px; margin-top: 10px;">
                                <asp:Image ID="Image1" runat="server" ImageUrl="~/images/loading.gif" />
                            </div>
                            <div style="text-align: center">
                                Updating...
                            </div>
                        </LoadingTemplate>
                    </iucon:PartialUpdatePanel>

頁面背后的代碼

protected Consultation controlconsultation  = new Consultation();
protected void Page_Load(object sender, EventArgs e)
        {
            PartialUpdatePanel7.UserControlPath = "Espace_Candidat/Consultation.ascx";
           controlconsultation.imageinfo += controlconsultation_imageinfo;
           Session["controlconsultation"] = controlconsultation;
        }
    void controlconsultation_imageinfo(object sender, CommandEventArgs e) 
    {
       PartialUpdatePanel7.UserControlPath = "Espace_Candidat/InfoEdition.ascx";
       Page.ClientScript.RegisterStartupScript(this.GetType(), 
                                              "CallMyFunction",   
        "changeControlSample('Espace_Candidat/InfoEdition.ascx')", true);
    }

用戶控件的代碼

public event CommandEventHandler imageinfo ; 
protected void Page_Load(object sender, EventArgs e)
        {
 Consultation current = (Consultation)Session["controlconsultation"];
                imageinfo = current.imageinfo;
       }
  protected void Valider (object sender, CommandEventArgs e)
          {
            if (imageinfo != null)
              {
                  string pageNumber = (string)e.CommandArgument;
                  CommandEventArgs args = new CommandEventArgs("Control", pageNumber);
                  imageinfo(this, args);
              }
          }

即使我用另一個方法更改JavaScript方法,此調用也不起作用。

例如,如果我嘗試

Page.ClientScript.RegisterStartupScript
(this.GetType(), 
"CallMyFunction", 
"alert('blabla');", 
 true);

我得到了相同的結果。

  1. 那么,我提出的錯誤是什么?
  2. 我該如何修復我的代碼?

如果您希望使用后面的代碼中的參數調用JavaScript方法,則可以使用此方法完成此操作

ClientScriptManager.RegisterStartupScript方法

請查看以下鏈接:

http://msdn.microsoft.com/en-us/library/z9h4dk8y(v=vs.110).aspx

希望這可以幫助。

如果你有頁面中的更新面板,那么這樣打電話,

ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), Guid.NewGuid().ToString(), @"<script type='text/javascript'>changeControlSample('" + path + "');</script>", false);

它沒有更新面板,然后像這樣調用

Page.ClientScript.RegisterStartupScript(this.GetType(), "tabselect", "<script type='text/javascript'>changeControlSample("' + path  + '");</script>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM