我在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"启用的编辑按钮。
我可以在页面中看到呈现的超文本标记语言,当所有其他列都有class="sorting_disabled"时,第一列仍然是class="sorting_asc"。如何对GridView添加的列进行编辑/更新/取消排序?
发布于 2017-03-01 03:50:48
您需要将"targets": ['_all']更改为"targets": '_all'
“如何对GridView添加的列禁用排序以进行编辑/更新/取消?”
如果您想单独配置每一列,请查看以下内容。
"columnDefs“是列定义的对象数组。您需要为每一列定义此{ "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);
}https://stackoverflow.com/questions/42517321
复制相似问题