You need to enable JavaScript to run this app. ASP.NET DevExpress GridView点击下一页提示No data to display问题求助
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET DevExpress GridView点击下一页提示No data to display问题求助

修复方案

核心问题

  • 你的DevExpress BootstrapGridView未开启分页配置,默认分页功能未激活
  • 你误用了微软原生ASP.NET GridView的OnPageIndexChanging分页事件,DevExpress控件有独立的事件体系,导致点击分页时你的数据绑定逻辑从未执行,回发后没有重新加载数据就显示为空

具体修改步骤

1. 修改aspx页面控件代码

给BootstrapGridView添加分页配置,同时绑定DevExpress对应的分页事件,修改后代码如下:

<dx:BootstrapGridView runat="server" ID="GVcity" AutoGenerateColumns="False" OnPageIndexChanged="GVcity_PageIndexChanged">
    <SettingsEditing Mode="Inline"></SettingsEditing>
    <SettingsDataSecurity AllowEdit="true" AllowDelete="true" AllowInsert="true"  />
    <SettingsBehavior AllowSelectSingleRowOnly="true" AllowSelectByRowClick="true" /> 
    <!-- 新增分页配置,可自行调整PageSize参数修改每页显示条数 -->
    <SettingsPager PageSize="10" Visible="true"></SettingsPager>
    <Columns>
        <dx:BootstrapGridViewTextColumn FieldName="localRegionName" VisibleIndex="0" Caption="Regional"></dx:BootstrapGridViewTextColumn>
        <dx:BootstrapGridViewTextColumn FieldName="localRegionCode" VisibleIndex="1" Caption="Code"></dx:BootstrapGridViewTextColumn>
        <dx:BootstrapGridViewTextColumn FieldName="CityName" VisibleIndex="2" Caption="City"></dx:BootstrapGridViewTextColumn>
    </Columns>
    <Settings ShowFilterRow="true" ShowFilterRowMenu="true"  />
</dx:BootstrapGridView>

2. 修改后台cs代码

替换原来的分页事件方法,修改后代码如下:

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.BindGrid();
    }
}

private void BindGrid()
{
    string constr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
    using (MySqlConnection con = new MySqlConnection(constr))
    {
        // 这里把原来的隐式表连接改成显式JOIN,属于写法优化不影响原有功能
        using (MySqlCommand cmd = new MySqlCommand("SELECT tblcity.localRegionCode, tblcity.CityName, tbllocalregion.localRegionName FROM tblcity JOIN tbllocalregion ON tblcity.localRegionCode = tbllocalregion.localRegionCode"))
        {
            using (MySqlDataAdapter sda = new MySqlDataAdapter())
            {
                cmd.Connection = con;
                sda.SelectCommand = cmd;
                DataTable dt = new DataTable();
                sda.Fill(dt);
                GVcity.DataSource = dt;
                GVcity.DataBind();
            }
        }
    }
}

// 替换原有OnPageIndexChanging方法,对应DevExpress分页事件
protected void GVcity_PageIndexChanged(object sender, EventArgs e)
{
    BindGrid();
}

可选优化

如果你的数据量超过1000条,建议开启DevExpress的服务端分页,避免每次全量拉取数据影响性能,只需在控件属性中添加EnableRowsCache="true",同时修改SQL语句支持分页查询即可。

内容的提问来源于stack exchange,提问作者Rado HT Simarmata

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 16:06:02