从后面的代码调用javascript方法

时间:2014-05-12 10:15:52

标签: c# javascript jquery asp.net .net

我需要使用后面代码中的参数调用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. 如何修复我的代码?

2 个答案:

答案 0 :(得分:1)

如果您希望使用后面的代码中的参数调用JavaScript方法,可以使用

完成此操作
  

ClientScriptManager.RegisterStartupScript方法

请查看以下链接:

  

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

希望这有帮助。

答案 1 :(得分:1)

如果您在页面中有更新面板,请按此方式调用,

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