我在GridView中使用了响应式DataTable类。
<asp:GridView ID="myGrid" runat="server" EnableViewState="False"
CssClass="table table-striped table-bordered table-hover">
<Columns>
<asp:CommandField ShowEditButton="true" CausesValidation="true" />
使用以下脚本:
<script>
$(document).ready(function () {
$("#<%= myGrid.ClientID %>").DataTable({
responsive: true,
"columnDefs": [{ "orderable": false, "targets": ['_all'] }],
});
});
</script>
此脚本禁用除我的第一列之外的所有列上的排序选项,该列具有使用GridView ShowEditButton="true"
启用的“编辑”按钮。
我可以在页面中看到呈现的HTML,第一列仍有class="sorting_asc"
,而所有其他列都有class="sorting_disabled"
。如何禁用GridView为编辑/更新/取消添加的列的排序?
答案 0 :(得分:0)
您需要将"targets": ['_all']
更改为"targets": '_all'
“如何禁用GridView为编辑/更新/取消添加的列的排序?”
如果您想单独配置每个列,请查看以下内容。
{ "orderable": false, "targets": ['_all'] }
。
你可以通过gridview编辑更新模式在服务器端准备new {"orderable": false ...}
对象数组..并注入你的脚本..
<script>
$(document).ready(function () {
$("#<%= myGrid.ClientID %>").DataTable({
responsive: true,
"columnDefs": <%= ColumnDefinitions %>,
});
});
用于服务器端..
public string ColumnDefinitions;
protected override void OnPreRender(EventArgs e)
{
List<object> columns = new List<object>();
for (int i = 0; i < myGrid.Columns.Count; i++)
columns.Add(new { orderable = !(myGrid.Columns[i] is CommandField) });
ColumnDefinitions = Newtonsoft.Json.JsonConvert.SerializeObject(columns);
base.OnPreRender(e);
}