未捕获的TypeError:无法读取属性' mData'未定义的JQuery DataTable

时间:2016-01-06 09:57:46

标签: c# jquery asp.net gridview datatables

我已将我的数据表绑定到ASP.Net中的gridview。我曾尝试使用jQuery dataTable在gridview中显示搜索和排序选项,但是数据表引发了一个错误。

错误是: 未捕获的TypeError:无法读取属性' mData'未定义"这是错误。

我使用了以下代码:

function pageLoad(sender, args) {
    $('#grdProducts').DataTable(
        $(document).ready(function () {
            $('.dataTable').dataTable();
        })
    );
}
<asp:GridView ID="grdProducts" runat="server" AutoGenerateColumns="false" CssClass="table table-hover dataTable">
    <Columns>
         <asp:TemplateField Visible="false">
            <ItemTemplate>
                <asp:Label ID="lblProductID" runat="server"                        Text='<%# Eval("ProductID")%>' />
            </ItemTemplate>
        </asp:TemplateField>
        <%--<asp:BoundField DataField="GroupName" HeaderText="Group Name" />--%>
        <asp:BoundField DataField="BrandID" HeaderText="Brand" />
        <asp:BoundField DataField="ProductName" HeaderText="Product" />
        <asp:BoundField DataField="ShortCode" HeaderText="Code " />
        <asp:BoundField DataField="Price" HeaderText="Price" />
        <asp:TemplateField HeaderText="Update">
            <ItemTemplate>
                <asp:Button ID="btnUpdate" runat="server" Text="Update" class="btn btn-info" OnClick="btnUpdate_OnClick" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

3 个答案:

答案 0 :(得分:4)

默认情况下,ASP GridView会将所有内容保留在标记下,并且不会渲染网格标题,这将导致“数据”。错误。

为了做到这一点,在将数据绑定到GridView之后使用下面的行:

GridViewName.HeaderRow.TableSection = TableRowSection.TableHeader;

答案 1 :(得分:0)

请改用以下代码:

$(document).ready(function (){
    $('#grdProducts').DataTable();
});

答案 2 :(得分:0)

  function pageLoad() 
{
  var table = $('#grdProducts').DataTable
  ({
       //Here you can define other things using Var table
  });    
} 

您可以在页面加载或行数据绑定时添加它

grdProducts.UseAccessibleHeader = true;
//adds <thead> and <tbody> elements
grdProducts.HeaderRow.TableSection =
TableRowSection.TableHeader;