jonney

像写情书一样写程序,像看小说一样看代码
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

asp.net 2.0的GridView的动态绑定数据的用法!

Posted on 2005-12-14 09:39  jonney  阅读(9762)  评论(0编辑  收藏  举报

     这段时间一直在搞asp.net 2.0和C#发现了2.0和以前的版本有很大的不同,下面是我对GridView动态捆绑用法的一些心得,写出来一起探讨:
      首先我假设我们要动态捆绑的一个类是一个查询的类定义为一个叫SearchFunction()的,然后我们双击分页的事件GridView1_PageIndexChanging:

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    
{
        GridView1.PageIndex 
= e.NewPageIndex;
        SearchFunction();
    }
而编辑的事件GridView1_RowEditing:
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    
{
        GridView1.EditIndex 
= e.NewEditIndex;
        SearchFunction(); 
     }
关闭编辑事件GridView1_RowCancelingEdit
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    
{
        GridView1.EditIndex 
= -1;
        SearchFunction();
    }
还有排序的时间GridView1_Sorting首先在刚刚load的时候添加
protected void Page_Load(object sender, EventArgs e)
    
{
       
        
        
if (!Page.IsPostBack)
        
{
            ViewState[
"sortColumn"= " ";
            ViewState[
"sortDirection"= " ";
            
         
        }

}
然后在事件里填写:
 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    
{
        GridView1.EditIndex 
= -1;
        
if (ViewState["sortColumn"].ToString() == e.SortExpression.ToString())
        
{
            
if ("ASC" == ViewState["sortDirection"].ToString())
            
{
                ViewState[
"sortDirection"= "DESC";
            }

            
else
            
{
                ViewState[
"sortDirection"= "ASC";
            }

        }

        
else
        
{
            ViewState[
"sortColumn"= e.SortExpression.ToString();
            ViewState[
"sortDirection"= "ASC";
        }

//sql是要查询的数据的内容
           sql += " order by " + ViewState["sortColumn"].ToString() + " " + ViewState["sortDirection"].ToString();

        
this.Session["sql"= sql;
        
using (DataSet dr = SQL.exesql(sql, "sql"))
        
{
            GridView1.DataSource 
= dr.Tables["sql"];
            GridView1.AutoGenerateEditButton 
= true;
            GridView1.AutoGenerateDeleteButton 
= true;
            GridView1.DataBind();
        }

    }

还有就是更新的事件GridView1_RowUpdating:

 

GridViewRow row = GridView1.Rows[e.RowIndex];
        TextBox test 
= (TextBox)row.Cells[1].Controls[0as TextBox;
        TextBox test1 
= (TextBox)row.Cells[2].Controls[0as TextBox;
        TextBox test2 
= (TextBox)row.Cells[3].Controls[0as TextBox;
        TextBox test3 
= (TextBox)row.Cells[4].Controls[0as TextBox;
..
        TextBox testx 
= (TextBox)row.Cells[y].Controls[0as TextBox;
//这里是关键获取前面GridView的元素的值;
//获取后就可以根据你要更新的内容来更新
        
这是我对动态GridView的一些用法的看法,希望大家一起来讨论;