0

updatepanel内にasp.netグリッドビューがあります。私がそこに持っているフィールドの1つは、次のような単純なテキストボックスです。

<asp:TextBox ID="txtDueDate" Text='<%# Eval("DueDate") %>' Width="75px" runat="server" ToolTip="Select the due date." CssClass="datePickerDueDate"></asp:TextBox>

このテキストボックスをクリックしたときにjqueryuidatepickerを表示したいのですが、次のことを試しました。

  $(".datePickerDueDate").datepicker({
            });

Chrome開発ツールでは、このテキストボックスのIDは次のように表示されますid="MainContent_gvLineItems_txtDueDate_0" 。これを処理するための最良の方法は何ですか?私の現在の問題は、開発者ツールを開いてコンソールウィンドウに直接入力し、Enterキーを押しない限り、カレンダーが表示されないことです。

編集

私はこれでそれを解決することができます:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "setDueDate", "$(function(){$('.datePickerDueDate').datepicker('option' 'firstDay', 1);});", true);

コードビハインドでは、これは醜いようです...もっと良い方法はありますか?

4

2 に答える 2

1

更新パネルにデータがあることを考慮すると、更新パネルが部分的なポストバックを実行したときに、ドキュメント準備完了イベントが発生しない可能性があります。

グリッドビューが編集モードになり、テキストボックスが表示されると思います。

jQuery $(document).readyとUpdatePanels?

その質問には、私が以前に使用した解決策が含まれています。

ただし、基本的には、updatepanels endrequestをサブスクライブしてから、.datepickerをテキストボックスに再バインドすることを意味します。

于 2012-06-25T12:54:55.473 に答える
0

datepicker関数をドキュメントの要素にバインドしていることを確認してくださいready

$(function(){
   $(".datePickerDueDate" ).datepicker();
});

jQueryセレクターはCssクラス名に基づいているため、入力要素用に生成されたIDについて心配する必要はありません。要素のクラス名がである限りdatePickerDueDate、それは機能します

また、2つのライブラリがページにロードされていることを確認してください。jQueryおよびjQueryUI

于 2012-06-25T12:53:04.020 に答える