我有一个分页的gridview(用的是自带的分页) 我想遍历所以记录,但是它只遍历了当前页,在网上找了很多 说可以通过Gridview的sqlDatasource可以但是sqldatasource怎么遍历啊或者还有其他的方法吗??

解决方案 »

  1.   

    sqldatasource是个object ,都是用dataset ,datatable,dataview绑定数据集的
    你可以拆箱成以上类型就可以进行数据集操作
      

  2.   

    不去遍历GridView,去遍历DataTable
      

  3.   

    DataSet ds=gridview1.DataSource as DataSet;
    foreach(DataRow dr in ds.Tables[0])
    {
       ....
    }
      

  4.   


    DataTable dtMyTable=GetAllData();for(int i=0;i<dtMyTable.Rows.Count;i++)
    {
       //code
    }
      

  5.   

    看你数据源的类型了 dataSet,dataTable,ArryList...
    以DataSet为例: DataSet ds = (DataSet)MygridView.DataSource;
                        if (ds.Tables.Count > 0)
                        {
                            foreach (DataRow dr in ds.Tables[0].Rows)
                            {
     
                            }
                        }
      

  6.   

    我按照上面的方法做的
    但是却报ds.table[0]未将对象引用设置到对象的实例。这怎么改啊
      

  7.   

     DataSet ds =GridView1.DataSource as DataSet;
    我这样写 为什么ds的值是null
      

  8.   

    TO:zhj__zhj 我gridview中的数据是直接用sqldatasource向导生成的
      

  9.   

    你用的绑定是SqlDataSource还是自己写的DataSet
      

  10.   

    SqlDataSource
      

  11.   

      IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();   
      while   (enumerator.MoveNext())   
        {   
                str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();   
                                
        }                                 
      

  12.   

    IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();    
    while(enumerator.MoveNext())    
    {    
          str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();    
                                 
    }  
       
      

  13.   

    TO:yb1124 str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();
    if(str!=1)   
    {
    在这里我要把那行隐藏掉应该怎么写呢
    }
      

  14.   

    IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();     
    while(enumerator.MoveNext())     
    {     
          str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();    
          if(str!=1) 
          {
               enumerator.MoveNext();
          }
                                  
    }     
      

  15.   

    不明白你的意思
    IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();      
    while(enumerator.MoveNext())      
    {      
          str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();     
          if(str==1)  
          { 
               enumerator.MoveNext(); 
          }     
                              
    }     
      

  16.   


    我要筛选gridview中的数据
    比如gridview中的数据是这样的
    id  name
    1    aa
    2    bb
    3    aa
    4    aa
    5    cc
    如果我传进来的值是aa的话 那么name为bb和cc的那2条记录在gridview中要隐藏起来IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();       
    while(enumerator.MoveNext())       
    {       
          str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();      
          if(str!=1)   
          {  
               enumerator.MoveNext();  
          }                                
    }   
    这样做不能实现
      

  17.   


    IEnumerator   enumerator   =   SqlDataSource1.Select(new   DataSourceSelectArguments()).GetEnumerator();     
    while(enumerator.MoveNext())     
    {     
          str   =   ((DataRowView)enumerator.Current).Row["ID"].ToString();     
                                  
    }

    这段代码是用来遍历已经绑定好的SqlDataSource的内容
      

  18.   

    DataSet ds=gridview1.DataSource as DataSet; 
    foreach(DataRow dr in ds.Tables[0].Rows) 

       .... 
    }
      

  19.   

    我还是不太明白你的意思,你想要数据怎么显示,,有了aa就不能有bb,cc
    SqlDataSource.SelectCommand 你是怎么写的
    sql语句怎么写的呢,只有这一种限制呢,还是说有了dd,就不能有ee,ff
      

  20.   

    刚开始的时候是显示全部数据的
    页面上还有个DropDownList 可以根据DropDownList的值来相应的改变gridview中的数据如果DropDownList选择了aa的话
    那gridview中只能显示aa的数据
    如果是cc就只能显示是cc的数据
    您明白我的意思了吗?
      

  21.   

    这回明白了,你应该在SqlDataSource1添加查询参数@name
    然后在DropDownList选择事件中
    SqlDataSource.SelectParameters.Add("@name",ddl.selectedvalue);
    重新绑定GridView
      

  22.   

    可以把你在list里面选择的值  当作参数传给SQL语句    只查询传过来的值的所有数据
    仁厚绑定到DATAVIEW上  当第一次加载是让它查询所有就可以了!
      

  23.   

    10
    20
    30
    40        for (int i = dt.Rows.Count-1; i >=0 ; i--)
            {
                if (!dt.Rows[i]["price"].ToString().Equals("40"))
                {
                    dt.Rows.Remove(dt.Rows[i]);
                }
            }
            GridView1.DataSource = dt;
            GridView1.DataBind();
      

  24.   

    针对9楼的做法,应该将ds.table[0]
    改为ds.tables[0]
      

  25.   

    筛选数据可以根据 BindingSource.Filter 来筛选.
    另外我觉得用listview不是更好吗?那样自己想怎么改就怎么改,样式也好看/