2017-07-25 72 views
0

我通過ajax調用將數據傳遞給數據表,並且在禁用文本框之前我一直有問題,直到我的數據表被填充爲零(結果爲零或更多結果)。 這是我的數據表:禁用文本框直到數據表填充到javascript

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": 
});} 

這是我的文本框:

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

我想直到我從Ajax調用的數據(數據表被填充)來禁用該文本框。我嘗試禁用它: $('#Date')。prop('disabled',true); 我在調用加載我的數據表的第一行javascript函數上調用了這個函數。但它沒有做任何改變。有什麼建議麼?

回答

0

您可以在默認情況下禁用文本框,然後在fnDrawCallback中啓用。所以,你會令你的輸入爲:

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

然後在您的數據表初始化:

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

這得到的每一個數據加載後調用,所以你就必須有東西,如果重新申請殘疾人屬性那是你之後的行爲。你也應該意識到頁面生命週期,如果JavaScript在頁面完全加載之前運行,那麼這可能解釋你的js禁用問題。你是否在$(document).ready()塊中獲得了數據表代碼?

此外,這些東西在你的代碼中有些奇怪:你使用ajax填充數據表,但你有"bServerSide": false,

+0

是的我的數據表代碼從ready()塊被調用 –