【问题标题】:Refresh javascript code, after autopostback dropdownlist在自动回发下拉列表之后刷新 javascript 代码
【发布时间】:2015-10-01 08:13:41
【问题描述】:

我有一个表格和一个公司下拉列表:

                          <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                 <ContentTemplate>
                                     <%--DataSourceID="sdsEmpresaTarea"--%>
                                     <asp:DropDownList ID="ddlEmpresaTarea" runat="server"
                                         DataValueField="IdEmpresa" DataTextField="Empresa" 
                                         AutoPostBack="true" ViewStateMode="Enabled">
                                     </asp:DropDownList>
                                 </ContentTemplate>
                          </asp:UpdatePanel>

第二个下拉列表显示公司下拉列表中所选公司的联系人:

<asp:DropDownList ID="ddlContactoTarea" runat="server"
   DataValueField="IdContacto" DataTextField="Nombre" ViewStateMode="Enabled">
</asp:DropDownList>

一个日期选择器文本框:

  <asp:TextBox ID="txtDate" runat="server" Text="" CssClass="datepicker" MaxLength="10" ViewStateMode="Enabled"/>
      <asp:RequiredFieldValidator ID="rfvDate" runat="server" 
          ErrorMessage="Date required"
          ControlToValidate="txtDate"  Display="Dynamic"> 
      </asp:RequiredFieldValidator>

问题是当我展开下拉列表并选择一个选项时, 下拉列表执行自动回发,在代码中我有一种方法可以搜索在公司下拉列表中选择的公司的联系人,然后日期选择器不起作用。 我必须强调,当我为页面收费时,日期选择器工作正常,但是当我在下拉列表中选择一家公司时,日期选择器不起作用,我认为这是因为自动回发后 JavaScript 代码没有刷新.

如何在每次选择公司下拉列表时刷新 javascript 代码?

【问题讨论】:

    标签: javascript asp.net vb.net datepicker


    【解决方案1】:

    Sys.Application.add_load 中发布您的 Javascript 代码

    $(function(){
                Sys.Application.add_load(function () { 
               // your Java script Code here
                       });
    
                });
    

    【讨论】:

    • 问题是我需要在后面的vb.net代码中更改代码,而不是在外部脚本中。
    【解决方案2】:

    UpdatePanel 在更新时完全替换更新面板的内容。这意味着您订阅的那些事件将不再被订阅,因为该更新面板中有新元素。

    function EndRequestHandler(sender, args) {
        try {
            // re-bind your javascript/jQuery events here
        } catch (e) {};
    }
    window.onload = Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
    

    PageRequestManager 是一个 javascript 对象,如果页面上有更新面板,它会自动可用。

    【讨论】:

    • 但是有没有办法在vb代码后面上传javascript?
    • 是的,有! ScriptManager 允许您从代码隐藏添加 javascript。它是一个页面属性,可用于异步执行 javascript。
    • Add JavaScript programmatically using RegisterStartupScript 如果真的想使用ScriptManager,请参考这篇文章。
    猜你喜欢
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2012-11-18
    • 2010-09-09
    相关资源
    最近更新 更多