0

updatepanel にドロップダウンリストとテキストボックスがあります。つまり、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 が更新されるたびに 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>
于 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 部分ポストバック後に jQuery Datepicker が機能しない場合は、このブログを参照してください。

于 2013-10-25T06:09:10.550 に答える