我正在实现girdview排序,它是用户控件的一部分。下面的代码给出了Indexoutofrange错误。
错误消息是:
dtView.Sort = strSort;
Errormessage: System.IndexOutOfRangeException: Cannot find column TEXT_COUNTY_ID.
有谁可以指出我做错了什么?
非常感谢您的帮助。
protected void SortGridData_Hkl(Object sender, GridViewSortEventArgs e)
{
GridView _dgd_work_onoff = (GridView)Page.FindControl("bodyuc$dgd_work_onoff");
DataSet dstemp;
DataView dtView;
if (ViewState["dsfetchResults"] != null)
{
dstemp = (DataSet)ViewState["dsfetchResults"];
string strSortOrder = ViewState["SortOrder"].ToString();
if (strSortOrder == "DESC")
{
strSortOrder = "ASC";
ViewState["SortOrder"] = strSortOrder;
}
else
{
strSortOrder = "DESC";
ViewState["SortOrder"] = strSortOrder;
}
string strSort = e.SortExpression.ToString() + " " + strSortOrder;
ViewState["SortString"] = strSort;
dtView = dstemp.Tables[0].DefaultView;
dtView.Sort = strSort;
if (dtView.Count != 0)
{
if (_dgd_work_onoff != null)
{
_dgd_work_onoff.DataSource = dtView;
_dgd_work_onoff.DataBind();
}
}
}
dsfetchResults
应该包含数据库中的数据。
答案 0 :(得分:0)
我修好了。问题是我在设计中使用了不同的列名(.aspx)而不是数据库中的列名。