我目前有一个GridView,我正在尝试添加一个按钮。我能够添加它,但是当我点击它时,我在这一行上得到了这个奇怪的错误。
if(c.mData===a){var d=u(b,"sort")||u(b,"order"),e=u(b,"filter")||u(b,"search");
错误:
第91行第426行未处理的异常 http://localhost:23549/Scripts/jquery.dataTables.min.js
0x800a138f - Microsoft JScript运行时错误:'mData'为空或不为空 一个对象
我做了一些研究,在其他任何地方都找不到这个问题。其他用户得到相同的错误,但没有一个使用ASP。我尝试更改按钮上的一些属性。我也尝试添加它有一个ButtonField,但我仍然得到相同的错误。
<div class="datatable">
<asp:GridView runat="server" ID="jobGridView" AutoGenerateColumns="False" BorderWidth="0px" GridLines="None" CssClass="table table-hover table-condensed font13" OnRowDataBound="jobGridView_RowDataBound" DataKeyNames="site_id,id" OnRowCommand="OnOff">
<Columns>
<asp:BoundField DataField="site_id" meta:resourcekey="siteField" />
<asp:BoundField DataField="id" meta:resourcekey="jobNameField" />
<asp:BoundField DataField="job_start_date" meta:resourcekey="jobStartField" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" />
<asp:BoundField DataField="job_end_date" meta:resourcekey="jobEndField" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" />
<asp:BoundField DataField="job_duration" meta:resourcekey="jobDurationField" DataFormatString="{0:HH:mm:ss.fff}" />
<asp:BoundField DataField="job_last_run_elapsed_time" meta:resourcekey="jobElapsedTimeField" />
<asp:BoundField DataField="return_code" meta:resourcekey="returnCodeField" />
<asp:BoundField DataField="return_description" meta:resourcekey="returnDescriptionField" />
<asp:BoundField DataField="status_code" meta:resourcekey="statusField" />
<asp:BoundField DataField="job_last_failure" meta:resourcekey="jobLastFailureField" DataFormatString="{0:yyyy-MM-dd HH:mm:ss}" />
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="lnkSelect" runat="server" Text="View" OnClientClick='<%# GetOpenTabJavascript(DataBinder.Eval(Container.DataItem, "id"), DataBinder.Eval(Container.DataItem, "site_id"))%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CommandName="OnOff" Text="Turn On/Off" ShowHeader="True" CommandArgument='<%# Eval("id") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
protected void OnOff(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "OnOff")
{
//This part gets hit when debugging, error is after
}
}
如果我删除按钮一切正常。 (LinkButton工作)
我尝试将事件类型更改为RowEditing和RowUpdating。同样的错误。
我应该从哪里开始调试以找出错误的来源? 随意提出任何问题。
答案 0 :(得分:1)
错误非常简单,只是让你知道jquery.dataTables
正在寻找一个名为mData
的对象,该对象当前为空和/或为假。
尝试为您的<div class="datatable">
提供一个ID,以匹配dataTables正在寻找的内容。
也就是说,<div class="datatable" id="mData">
我并非100%肯定会这样做,但你的解决方案肯定会在附近。
我经常使用dataTables并且经常会遇到很多令人烦恼的错误,这些错误只是在我弄清楚之前就调试并在桌面上敲了一下。
似乎不是这样(在没有调试的情况下真的可以告诉你)你的代码没问题 - 你只需要明确告诉dataTables mData
是什么。如果它不在<div>
上,可能是按钮或GridView
:说实话,我知道的变量太多了(除非您尝试其中一些并得到反馈!:))