【问题标题】:Prevent default Telerik sort for RadGrid防止 RadGrid 的默认 Telerik 排序
【发布时间】:2012-09-14 14:37:22
【问题描述】:

我正在使用 Telerik RadGrid,并且我有一个数据源,其中我的一个列看起来像 hh:mm:ss。当我从数据库加载 RadGrid 的数据源时,我根据 DateTime 列(也包含年、月和日)对结果进行排序(在 SQL 级别),但在网格表示中我只显示 hh:mm:ss .我在 SQL 级别上的自定义排序运行良好,在给定的页面中,我得到了应该存在的那些元素。但是,当我对本质上是 DateTime 但表示为 hh:mm:ss 的列进行排序时,也会发生默认的 Telerik 排序,它对给定页面中的行进行排序。这是不正确的,因为 '09-12-2012 20:20:20' '10:10:10'。如何防止我的 RadGrid 的默认 Telerik 排序?我希望其他一切都以同样的方式工作,我只想告诉 Telerik “不要对我的列进行排序,我已经处理了排序事件,谢谢”。我怎样才能做到这一点?

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="true" AllowCustomPaging="true" AllowMultiRowSelection="true">
        <MasterTableView DataKeyNames="ID" ClientDataKeyNames="ID" InsertItemPageIndexAction="ShowItemOnCurrentPage">
            <CommandItemTemplate>
                <div class="cmdItem">
                    <asp:LinkButton ID="btnManageColumns" runat="server" CommandName="Manage Columns" data-link="manage-columns">
                        <img alt="" src="../../Images/Icons/Columns.png" />Manage Columns</asp:LinkButton>
                    <asp:HiddenField ID="hdnSpacer" runat="server" />&#160;&#160;&#160;
                    <asp:LinkButton ID="btnExportPDF" runat="server" CommandName="Export PDF"
                        OnClientClick="return exportGrid('PDF');"><img alt="" src="../../Images/Icons/ExportPDF.png" />Export to PDF</asp:LinkButton>&#160;&#160;&#160;
                    <asp:LinkButton ID="btnSendEmail" runat="server" CommandName="SendEmail" OnClientClick="return exportGrid('PDFEmail');"><img alt="" src="../../Images/Icons/PasswordSetup.png"/>Email</asp:LinkButton>
                </div>
            </CommandItemTemplate>
        </MasterTableView>
        <ClientSettings>
            <ClientEvents OnCommand="gridCommand" />
            <Selecting AllowRowSelect="True" UseClientSelectColumnOnly="true" />
        </ClientSettings>
    </telerik:RadGrid>

【问题讨论】:

    标签: asp.net sorting telerik


    【解决方案1】:
    AllowCustomSorting="true"
    

    此属性应添加到 MasterTableView 标记中。

    【讨论】:

      【解决方案2】:

      如果你想要的话,你应该可以关闭列的排序,或者整个网格

      每列

      <Columns>
              <tr:GridBoundColumn DataField="field" HeaderText="Description" 
                   AllowSorting="false" />
          </Columns>
      

      整个网格

      <telerik:RadGrid ID="RadGridData" runat="server" AllowSorting="false" AllowPaging="true" PageSize="50" OnNeedDataSource="RadGridData_NeedDataSource" OnItemDataBound="RadGridData_ItemDataBound">
      

      自定义排序

      <telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="true" AllowCustomPaging="true" AllowMultiRowSelection="true" OnSortCommand="RadGrid1_SortCommand" >
      

      【讨论】:

      • 谢谢你,Andrew Walters,但恐怕你没有理解这个问题。我想允许排序为事件,但我想运行我的排序而不是 Telerik 的排序。您的建议完全禁用了排序功能,因此您的回答没有回答问题。
      • 事实上,问题是我的(正确的)排序被执行了,然后 Telerik 用它的默认排序搞砸了一切。
      • 您的 radGrid 定义中有 OnSortCommand="SortCommand_Event" 吗?您应该发布您的 radgrid 代码。
      • 好的,我已经编辑了问题。如您所见,没有定义 SortCommand_Event。我也尝试过那个活动,但没有成功。
      • 我认为您需要添加 OnSortCommand="SortCommand_Event" 其中 SortCommand_event 是您的自定义排序事件 有关更详细的示例,请参阅此链接:demos.telerik.com/aspnet-ajax/grid/examples/programming/sort/…
      猜你喜欢
      • 2011-11-28
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2015-05-02
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多