2017-07-25 76 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()块被调用 –