疑难杂症:GridView分页后 DataKeyNames失效

warfen 2012-08-02 02:32:22
程序上传到服务器后,只要GridView分页,DataKeyNames就失效了。获取 DataKeyNames的数量为0。
在本地测试是好的。
...全文
131 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
warfen 2012-08-02
  • 打赏
  • 举报
回复
非常感谢你的回复,不过答非所问,不是我要的。
天下在我心 2012-08-02
  • 打赏
  • 举报
回复
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "id" };//主键
GridView1.DataBind();
一般这样指定
warfen 2012-08-02
  • 打赏
  • 举报
回复
本地测试可以,程序是没问题的,上传到服务器出现这个怪问题。我在 aspx页面上 设置了 DataKeyNames,你说的方法我试过,无效。
天下在我心 2012-08-02
  • 打赏
  • 举报
回复
private void BindData(NewsCategory category)
{
gvList.DataSource = _news.GetAll(category);
gvList.DataBind();
}
在这个方法里指定你的DatakeyNames,分页相当于数据重新绑定。
warfen 2012-08-02
  • 打赏
  • 举报
回复
回楼上的:NewsCategory是枚举, _news 是业务类,NewsInfo实体类。
问题是:本地运行正常,上传到虚拟主机服务商的空间出现 分页 获取不到DataKeys的问题。不分页可以。
private void BindData(NewsCategory category)
{
gvList.DataSource = _news.GetAll(category);
gvList.DataBind();
}

protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
BindData();
}
protected void gvList_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
var newsInfo = new NewsInfo {Id = Convert.ToInt32(e.Keys[0])};
_news.Delete(newsInfo);
BindData(Category);
}

protected void gvList_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvList.PageIndex = e.NewPageIndex;
BindData(Category);
}
天下在我心 2012-08-02
  • 打赏
  • 举报
回复
你的代码呢?

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧