2

jquery を使用して Datalist コントロールの clientID を取得する方法 、以下のコードを使用してみましたが成功しませんでした:

$(document).ready(function(){
$('#<%=txtRenewalDate.ClientID %>').datepicker();
    $('#<%=txtCallBackDate.ClientID %>').datepicker();

});
<asp:DataList ID="dlCustomers" runat="server" ClientIDMode="Predictable">
    <ItemTemplate>
      <table border="0">
                    <tr>
                        <td class="">
                            RenewalDate:
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtRenewalDate" runat="server" Text='<%# Eval("RenewalDate") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td class="">
                            Callback
                        </td>
                        <td class="">
                            <asp:TextBox ID="txtCallBackDate" runat="server" Text='<%# Eval("Callback") %>' ClientIDMode="Static"></asp:TextBox>
                        </td>
                    </tr></table>
                     </ItemTemplate>
</asp:DataList>

スクリプトがコメントされたときのマークアップ

                        <td class="">

                            RenewalDate:

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtRenewalDate" type="text" value="27/01/2012 00:00:00" id="txtRenewalDate" />

                        </td>

                    </tr>

                    <tr>

                        <td class="">

                            Callback

                        </td>

                        <td class="">

                            <input name="ctl00$MainContent$dlCustomers$ctl00$txtCallBackDate" type="text" value="27/01/2012 00:00:00" id="txtCallBackDate" />

                        </td>

                    </tr>

実行すると、次のエラーが表示されます: The name 'txtRenewalDate' does not exist in the current context. The name 'txtCallBackDate' does not exist in the current context

私が間違っているアイデア。

ありがとう

4

5 に答える 5

0

asp.net 4 を使用している場合は、クライアント ID モードを静的に設定できます。DOM asp.net 4.0 clientID モードでクライアント ID を見つけるよりも簡単です。

于 2012-01-27T17:59:51.307 に答える
0

この要素を選択するには、次のようなものを使用する必要があります。

var txtRen = $('#<%= dlCustomers.ClientID %>').Find('[id$=txtRenewalDate]');
于 2013-07-06T22:59:41.433 に答える
0

式 $('<%= "#" + control.ClientID %>') を使用して、jquery でコントロールを選択できます。

お役に立てれば。

于 2014-03-28T14:49:15.557 に答える
0

これらのコントロールはデータリスト内にあり、データリストの外部から呼び出しているため、フォームのルートに技術的に存在しないことが問題である可能性があると思います。次のようなことをする必要があるかもしれません:

 $('#<%= dlCustomers.FindControl("txtRenewalDate").ClientID %>')

私は間違っているかもしれませんが、それが私の最善の推測です。

于 2012-01-27T17:54:28.820 に答える