datagridview表中 按某一字段排序  结果CellClick事件出错 private void gvUserProperty_CellClick(object sender, DataGridViewCellEventArgs e)
{
  try
  {
    this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value=
     int.Parse(this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value.ToString())==1?0:1;
   。。
  }
   catch (Exception ex)
            {
                System.Console.WriteLine(ex.Message + "5");
             }
}
catch报错:未将对象引用设置到对象的实例。这是为什么??怎么解决??

解决方案 »

  1.   

    另一种排序方式.  通过点头标题来切换排序右击GridView弹出“属性”,选择AllowSorting为True  选择各字段排序
    protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
        {
            string sPage = e.SortExpression;
            if (ViewState["SortOrder"].ToString() == sPage)
            {
                if (ViewState["OrderDire"].ToString() == "Desc")
                    ViewState["OrderDire"] = "ASC";
                else
                    ViewState["OrderDire"] = "Desc";
            }
            else
            {
                ViewState["SortOrder"] = e.SortExpression;
            }
            bind();
        }    public void bind()
        {
            
            string sqlstr = "select * from tablename";
            sqlcon = new SqlConnection(strCon);
            SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
            DataSet myds = new DataSet();
            sqlcon.Open();
            myda.Fill(myds, "tablename");
            DataView view = myds.Tables["tablename"].DefaultView;
            string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
            view.Sort = sort;
            GridView1.DataSource = view;
            GridView1.DataBind();
            sqlcon.Close();
        }
      

  2.   

    调用ToString()方法要判断是否值为Null:
    this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value.ToString()
      

  3.   

    int.Parse(this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value.ToString())==1?0:1; 转换为integer类型也要判断是否为Null.
      

  4.   

    好像是先判断
    if (e.RowIndex > -1)
    //you code
      

  5.   

    if (e.RowIndex > -1) 按某一字段排序
     this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value.ToString() 的值还是null  该怎么写??
      

  6.   

    按某一字段排序  为什么 this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value.ToString() 的值是null  ???
      

  7.   

    if(this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value != null)
      

  8.   

    关键是datagridview按某一个字段排序的话 this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value  一直是null       为什么    怎么解决?
      

  9.   

    DataGridView中的数据格式失效和排序异常问题
      

  10.   

     this.gvUserProperty.Rows[e.RowIndex].Cells[0].Value  = DBNull.Value