You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Telerik RadGrid点击列头排序时数据消失如何解决?

Telerik RadGrid排序后数据消失的常见原因
  • 未在NeedDataSource事件中绑定数据
    Telerik RadGrid的分页、排序、筛选等内置操作都依赖NeedDataSource事件触发自动数据绑定,如果你是在Page_Load中仅当!IsPostBack时绑定数据,排序触发的回发会导致没有重新给网格喂数据,最终渲染为空。

正确做法是将数据绑定逻辑全部移到RadGrid的NeedDataSource事件处理方法中,无需手动调用DataBind()方法,控件会在需要时自动执行绑定。

  • 排序表达式与数据源字段不匹配
    如果你手动配置了列的SortExpression属性,填写的值和你绑定的数据源对象的字段名/数据表的列名不对应,排序时数据源查询抛出异常或者返回空结果,就会显示无数据。检查所有开启排序的列的SortExpression,确保和数据源字段完全一致,大小写敏感的数据源要额外注意大小写匹配。
  • 动态生成列的逻辑未在回发时重建
    如果你的RadGrid列是后台代码动态生成的,仅在!IsPostBack时生成了列,排序回发后列没有被重建,绑定逻辑无法对应到正确列,也会导致数据加载失败。动态列的生成逻辑需要放在Page_Init中执行,不管是否是回发都要重建。
  • ViewState禁用导致状态丢失
    如果你给RadGrid或者父级页面/控件设置了EnableViewState="false",排序回发后控件无法保留之前的配置和分页状态,会导致绑定失败。可以先尝试开启RadGrid的ViewState排查是否是该问题导致。
  • 筛选条件冲突
    如果页面上同时配置了其他筛选控件,排序触发回发时筛选条件被重置为不存在的取值,导致查询数据源时返回空结果,检查后台数据查询逻辑在排序回发时的参数是否符合预期。

内容的提问来源于stack exchange,提问作者EggBender

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:30:05