【发布时间】:2010-10-15 16:55:20
【问题描述】:
过去,我通过在页面加载中执行此操作,在后面的代码中使用“手动创建”数据源填充 GridView:
DataTable myData = SomeMethod(); //Returns a DataTable
myGrid.DataSource = myData;
myGrid.DataBind();
每当我想将数据下载到 CSV 文件时,我只需将以下内容添加到按钮的 Click 事件中:
DataTable csvData = new DataTable();
csvData = (DataTable)myGrid.DataSource;
//CSV construction, reponse send to browser, etc.
这是因为 GridView 在页面加载期间已经是数据绑定的,所以当达到 Click 事件时数据可用。
但现在我无法使用我在设计时 (HTML) 中添加的 SqlDataSource 控件使其工作。此 SqlDataSource 绑定到具有自动回发功能的 DropDown 控件,以便在更改选择时检索数据。
我运行网站,数据已经显示在 GridView 中(EnableViewState=false 以在每个页面加载时强制查询),然后单击按钮,只是因为 myGrid.DataSource 为空而导致异常。
我的问题(最后): 我注意到单击事件发生在 GridView_OnDataBound 之前,但即使 OnDataBound 数据源为空。如何从渲染的 GridView 中获取数据以允许加载?或者我应该从哪里尝试检索它?
【问题讨论】: