首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在GridView中禁用EditItemTemplate排序

在GridView中禁用EditItemTemplate排序
EN

Stack Overflow用户
提问于 2017-03-01 03:36:27
回答 1查看 108关注 0票数 0

我在GridView中使用了响应式DataTable类。

代码语言:javascript
复制
<asp:GridView ID="myGrid" runat="server" EnableViewState="False"
         CssClass="table table-striped table-bordered table-hover">
    <Columns>
    <asp:CommandField ShowEditButton="true" CausesValidation="true" />

使用以下脚本:

代码语言:javascript
复制
<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添加的列进行编辑/更新/取消排序?

EN

回答 1

Stack Overflow用户

发布于 2017-03-01 03:50:48

您需要将"targets": ['_all']更改为"targets": '_all'

“如何对GridView添加的列禁用排序以进行编辑/更新/取消?”

如果您想单独配置每一列,请查看以下内容。

"columnDefs“是列定义的对象数组。您需要为每一列定义此{ "orderable": false, "targets": ['_all'] }

您可以通过gridview编辑-更新模式在服务器端准备new {"orderable": false ...}对象数组。然后注入你的脚本..

代码语言:javascript
复制
<script>
$(document).ready(function () {
    $("#<%= myGrid.ClientID %>").DataTable({
        responsive: true,
        "columnDefs": <%= ColumnDefinitions %>,
    });
});

对于服务器端..

代码语言:javascript
复制
    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);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42517321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档