下拉列表索引更改时日期选择器不工作

时间:2013-10-25 05:13:16

标签: javascript jquery asp.net

我的updatepanel中有一个下拉列表和文本框。即AuditName,审核日期。 AuditName下拉列表具有从数据库中检索的值。审核日期用于设置日期,这里使用的是jquery datepicker。

问题是当页面加载日期选择器工作正常时。但是当我从下拉列表中选择值时,datepicker没有工作(甚至没有显示日期)。

当我首先选择日期时,请选择文本框值清除的下拉列表。我不知道为什么会发生..

我的代码是,

<script>
     $(function () {
         $('#<%= txtAuditduedate.ClientID %>').datepicker(
             { minDate: 0, changeMonth: true, changeYear: true });
     });
</script>

<asp:UpdatePanel runat="server" ID="upnlAddschedule" UpdateMode="Conditional">
        <ContentTemplate>
            <table cellpadding="5" cellspacing="5" width="100%">                   
                <tr>
                    <td align="right">
                        <asp:Label runat="server" ID="lblAuditlist" Text="Audit Name:/>                            
                    </td>
                    <td align="left">
                        <asp:DropDownList runat="server" ID="ddauditlist" TabIndex="100" AppendDataBoundItems="true" Width="194px"                                AutoPostBack="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"> 
                        </asp:DropDownList>                            
                    </td>
                </tr>
                <tr>
                    <td align="right">
                        <asp:Label runat="server" ID="lblDuedate" Text="Audit Due Date:"></asp:Label> 
                    </td>
                    <td align="left">
                        <asp:TextBox runat="server" ID="txtAuditduedate" Width="189px" Font-Bold="False" ReadOnly="true" TabIndex="101" />                            
                    </td>
                </tr>                    
            </table>
        </ContentTemplate>
    </asp:UpdatePanel>

这是我的下拉绑定代码,

public void FillDropDownList()
    {
        s = WebConfigurationManager.ConnectionStrings["Scon"].ConnectionString;
        con = new SqlConnection(s);
        con.Open();
        cmd = new SqlCommand("select AUDITNAME from MASTER ", con);
        dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            ddauditlist.Items.Add(new ListItem(dr["AUDITNAME"].ToString()));
        }            
        dr.Close();
        con.Close();
    }

2 个答案:

答案 0 :(得分:3)

每次更新UpdatePanel时尝试绑定datepicker。

<script>
     $(document).ready(function () {
         bindDatePicker();
         Sys.WebForms.PageRequestManager.getInstance().add_endRequest(bindDatePicker);
     });

     function bindDatePicker() {
         $('#<%= txtAuditduedate.ClientID %>').datepicker({
             minDate: 0,
             changeMonth: true,
             changeYear: true
         });
     }    
</script>

<!-- Add the ScriptManager if it doesn't already exist on your page -->
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

答案 1 :(得分:1)

添加脚本,这就是我的工作。

<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>

<script type="text/javascript">
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded( $(function () {
     $('#<%= txtAuditduedate.ClientID %>').datepicker(
         { minDate: 0, changeMonth: true, changeYear: true });
 }););
</script>

对不起,语法错误,就像一把钥匙

见这个讨论:

Date picker is not working with update panel

并查看此博客jQuery Datepicker does not work after Ajax Partial Postback