在autopostback dropdownlist之后刷新javascript代码

时间:2015-10-01 08:13:42

标签: javascript asp.net vb.net datepicker

我有一份表格和公司的dropdwonlist:

                          <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>
  

问题是当我展开下拉列表并选择一个选项时   下拉列表执行autopostback并在代码中我有一个方法来搜索公司下拉列表中所选公司的联系人,然后datepicker不起作用。   我必须强调的是,当我对页面收费时,datepicker运行良好,但是当我在下拉列表中选择一家公司时,则datepicker不起作用,我认为这是因为jcc代码在autopostback之后没有刷新

     

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

2 个答案:

答案 0 :(得分:1)

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对象,如果页面上有更新面板,则该对象自动可用。

答案 1 :(得分:1)

Sys.Application.add_load

中发布您的Javascript代码
$(function(){
            Sys.Application.add_load(function () { 
           // your Java script Code here
                   });

            });