System.IndexOutOfRangeException:找不到列

时间:2011-04-19 01:01:09

标签: c# sorting user-controls

我正在实现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应该包含数据库中的数据。

1 个答案:

答案 0 :(得分:0)

我修好了。问题是我在设计中使用了不同的列名(.aspx)而不是数据库中的列名。