0

我的更新面板中有一个下拉列表和文本框。即AuditName,审计日期。AuditName 下拉列表具有从数据库中检索到的值。审核日期用于设置日期,这里使用 jquery 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();
    }
4

2 回答 2

3

每次更新 UpdatePanel 时尝试绑定日期选择器。

<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>
于 2013-10-25T05:26:13.683 回答
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>

抱歉语法有问题,就像一把钥匙

请参阅此讨论:

日期选择器不适用于更新面板

并在 Ajax Partial Postback 之后查看jQuery Datepicker does not work这个博客

于 2013-10-25T06:09:10.550 回答