我通过ajax调用获取数据到datatable,我在禁用文本框时遇到问题,直到我的数据表被填充(零结果或更多结果)。 这是我的数据表:
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调用获取数据(数据表被填充)。 我试过禁用它: $( '#日期')丙( '禁用',真正的); 我在调用加载我的数据表的javascript函数的第一行调用了这个。但它没有做任何改变。有什么建议吗?
答案 0 :(得分:0)
您可以默认禁用文本框,然后在fnDrawCallback
中启用。因此,您可以将输入呈现为:
<input type="TextBox" ID="Date" disabled="disabled" />
然后在你的数据表初始化中:
"fnDrawCallback": function (oSettings) {
$('#Date').removeAttr('disabled');
}
每次重新加载数据后都会调用此函数,因此如果这是您之后的行为,则必须重新应用已禁用的属性。您还应该了解页面生命周期,如果javascript在页面完全加载之前运行,那么可能会解释您的js禁用问题。您是否在$(document).ready()
块中获得了数据表代码?
此外,您的代码中有些奇怪的东西:您使用ajax填充数据表,但是您有"bServerSide": false,
。