【问题标题】:How to get data from a gridview at runtime on web form asp.net如何在 web 表单 asp.net 上运行时从 gridview 获取数据
【发布时间】:2012-01-16 04:29:21
【问题描述】:

我在 aspx 页面上有一个 gridview。

gridview 已有数据源并已填充。

当用户单击按钮时,我正试图从中获取数据:

DataTable dt = (DataTable)grdList.DataSource;

但是它显示这个结果为空!

我理解这是回发/视图状态的问题。

有人可以向我推荐一个解决方案,通过它我可以从 gridview 中获取数据吗?>

【问题讨论】:

  • 用户点击的是网格中的按钮还是网格所属的表单?
  • @gsirianni 用户正在单击表单上的按钮,而不是网格上的按钮
  • 是绑定数据网格的sqlDataSource还是objectDataSource?如果表很大,我可以通过对象数据源重新运行查询。如果没有,那么将数据表保存到视图状态就足够了。
  • 这个之前可以问。 stackoverflow.com/questions/785799/…
  • @HanletEscaño por el 酒精!~!!!!!

标签: c# asp.net gridview


【解决方案1】:

不,您无法从 asp.net gridview 获取数据。而是使用此代码。

Datatable dt = SomeMethodReturningDataTable();

Viewstate["Table"] = dt;

GridView.DataSource = ViewState["Table"];
Gridview.DataBind();

如果要进行更改,请从视图状态中拉出表格并进行更改,然后再次推送并将其绑定到网格。

【讨论】:

  • 为什么是负面的?任何具体原因。
  • 当我尝试这样做时:Viewstate["Table"] = (DataTable)grdList.DataSource;我得到“viewstate”在当前上下文中不存在
  • 这可行,但页面大小会根据表大小而增长。除非确定总是只返回很少的记录,否则我不会采用这种方法。
  • 你永远不会从数据源中获取 Datatable。由于 asp.net 数据源本质上是易变的。请参阅我的建议......在我的回答中。
  • @DavidePiras :您可以有其他选择,1. Sql Paging 或 2.Compress the viewstate
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
相关资源
最近更新 更多