【发布时间】:2017-04-06 12:01:45
【问题描述】:
我正在尝试在网格视图中进行排序 (ASP.Net 4.5)
代码非常简单。网格视图的 AllowSorting 和 AutoGenerateColumns 设置为 true
使用SELECT * FROM TABLE
等简单查询在按钮单击时填充网格视图排序事件有以下代码(代码可能有一些语法错误,因为我只是写它而不是从原始源复制它):
protected void GridView_Sorting(object sender, GridViewSortEventArgs e)
{
DataTable dt = grid1.DataSource as DataTable;
if(dt != null)
{
//do some sorting
}
}
问题是 dt 始终为空。我尝试使用以下但同样的问题。
DataTable dt = (DataTable)grid1.DataSource;
我尝试在视图状态中保存数据表(在填充 gridview 时在按钮单击事件上),然后当我在上面的排序方法中调用它时,现在 dt 不为空,但它仍然为空,其中有 0 行。
为什么dt为null,如何排序?
编辑
按钮点击代码如下
SqlConnection con = new SqlConnection(strConnection);
SqlCommand sqlCmd = new SqlCommand();
sqlCmd.Connection = con;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "Select * from titles";
SqlDataAdapter sqlDataAdap = new SqlDataAdapter(sqlCmd);
DataTable dtRecord = new DataTable();
sqlDataAdap.Fill(dtRecord);
grid1.DataSource = dtRecord;
ViewState["grid1"] = dtRecord;
grid1.DataBind();
【问题讨论】:
-
如何以及何时设置网格的数据源属性?
-
请使用您设置
grid1.DataSource的代码以及SQL语句更新OP。 -
能否请您提供设置数据源的行?
-
语法正确
DataTable dt = (DataTable)grid1.DataSource;问题是您没有向我们展示您最初为grid1 设置数据源的位置,请显示与您当前的问题和/或问题相关的所有相关代码。 . -
我用按钮点击事件代码更新了问题。
标签: c# sorting gridview datatable