2017-07-25 6 views
0

私はAJAX呼び出しによってデータテーブルにデータを取得していますが、データボックスにデータが表示されるまでテキストボックスを無効にすることに問題があります。(0の結果かより多くの結果) これは、 :私は(データテーブルが読み込まれます)AJAX呼び出しからデータを取得するまで、このテキストボックスを無効にしたいデータシートがjavacriptに入力されるまでテキストボックスを無効にする

<asp:TextBox ID="Date" runat="server"></asp:TextBox> 

tableIsasSchedulesDetailView = $('#tableIsasSchedules').DataTable({ 
       "bProcessing": true, 
       "deferRender": true, 
       "bServerSide": false, 
       "sServerMethod": "POST", 
       ajax: "/services/json/schedule.aspx?t=is&df=" + date + "&pfjson=" + encodeURI(JSON.stringify(filters)), 
"aoColumns": [ 
        { "sName": "Clientid", "bVisible": false, "sTitle": "", "mData": "Clientid", "sClass": "CellS", "sWidth": "0" }, 
        { "sName": "DisplayName", "sTitle": "Client", "mData": "Displayname", "sClass": "CellS Cell125" }], 
"fnInitComplete": 
"fnCreatedRow": 
"fnRowCallback": 
});} 

これが私のテキストボックスです。 私はそれを無効にしようとしました: $( '#Date')。prop( 'disabled'、true); 私は、私のデータテーブルをロードするために呼び出すjavascript関数の最初の行でこれを呼び出しました。しかし、それは何の変化もありません。助言がありますか?

答えて

0

デフォルトでテキストボックスを無効にし、fnDrawCallbackで有効にすることができます。あなたのデータテーブルの初期化に続いて

<input type="TextBox" ID="Date" disabled="disabled" /> 

:だから、としてあなたの入力をレンダリングします

"fnDrawCallback": function (oSettings) { 
    $('#Date').removeAttr('disabled'); 
} 

これは、データのすべてのリロード後に呼び出されるので、あなたは、次の場合にdisabled属性を再適用するために何かを持っている必要がありますそれはあなたの後の行動です。また、ページが完全にロードされる前にjavascriptが実行されている場合は、ページのライフサイクルを意識する必要があります。 $(document).ready()ブロックにデータテーブルのコードがありますか?

また、これらはあなたのコードに奇妙なものがあります。あなたはajaxを使用してデータテーブルを作成していますが、"bServerSide": false,です。

+0

はい私のdatatablesコードはready()ブロックから呼び出されます –

関連する問題