1

jquery datepicker に問題があります。ここにコードがあります

<asp:GridView ID="CompIncGridView1" runat="server" AllowPaging="True" AllowSorting="True"
                    AutoGenerateColumns="False" DataKeyNames="D_id" ClientIDMode="Static" >
                    <Columns>
                        <asp:TemplateField HeaderText="Data idoneità">
                            <EditItemTemplate>
                            </EditItemTemplate>
                            <ItemTemplate>
                                <asp:TextBox CssClass="DatePick" ID="ComplyDateTB1" runat="server" Text='<%# Bind("ComplyDate", "{0:d}") %>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>

                    </Columns>
                </asp:GridView>

これはjqueryコードです

$(document).ready(function () {
            $(".DatePick").datepicker($.datepicker.regional['it']);
});

問題は、任意のテキスト ボックスをクリックするとカレンダーが表示されますが、日を選択すると、テーブルの最初のテキスト ボックスにのみ日付が書き込まれることです。

ありがとう

4

2 に答える 2

3

クラスセレクターを使用しています。一意の ID セレクターを使用してみてください。このようなもの

$(document).ready(function () {
            $('#<%= ComplyDateTB1.ClientID %>').datepicker($.datepicker.regional['it']);
});
于 2013-05-03T12:34:35.000 に答える
0

まず、jQuery Datepicker チュートリアルに基づいて、ここでエラーを再現します

GridView では、すべてのテキスト コントロールが同じ ID を持っているため、問題が発生します。簡単な解決策の 1 つは、その ID を削除し、asp.net にそれらを自動的に追加させることです。この最終テストでわかるように、問題は解決します: http://jsfiddle.net/B7EGj/1/ および作業ページのコード:

<p>Date: <input type="text" class="dp" /></p>
<p>Date: <input type="text" class="dp" /></p>
<p>Date: <input type="text" class="dp" /></p>
<p>Date: <input type="text" class="dp" /></p>
<p>Date: <input type="text" class="dp" /></p>

<script>
 $(function() {
    $( ".dp" ).datepicker();
  });
</script>

通常、コントロールのすべてのIDは一意である必要があるため、日付ピッカーが開いて日付を追加するコントロールのIDを保持するのが間違っているかどうかはわかりませんが、同時にハンドラーに基づいて開いています。反対側から、GridView のようなリピーター内でテンプレートを使用して TextBoxes を追加し、何らかの理由でテキストボックスに異なる ID を自動的に付与できず、全員が同じ ID を持っている場合、asp.net から。

この問題を回避するために gridview が作成する必要があるコードは次のとおりです: http://jsfiddle.net/B7EGj/2/ (すべての ID が異なります)

于 2013-05-03T14:57:37.393 に答える