string SQL="Select * from soccer_player";
DataSet ds=new DataSet();
SqlDataAdapter Adapter=new SqlDataAdapter(SQL,Conn);
Adapter.Fill(ds,"player_score");
DataGrid1.DataSource=ds.Tables["player_score"].DefaultView;
DataGrid1.DataBind();
怎样实现 选择一个下拉框选项后让datagrid只显示符合这个值的项 比如 选择“亨利”后 datagrid就只显示name为“亨利”的记录? 
需要重新查询数据库吗? 

解决方案 »

  1.   

    能不能直接在dataset里面查询 不再去查数据库呢
      

  2.   

    建一个DataView,DataGrid绑到这个DataView上,过滤这个DataView。
      

  3.   

    DadaView dv = new DataView(ds.Tables["player_score"]);
    dv.RowFilter="name='亨利'";
    DataGrid1.DataSource=dv;
    DataGrid1.DataBind();
      

  4.   

    quunce(狗狗) :
    那样的话 还是先要查询数据库获得ds.Tables["player_score"]才能进行过滤
    有没有办法得到本地的dataset
      

  5.   

    想到一个好方法 如何建立一个 DadaView,将当前DataGrid赋给这个DadaView
    就是这样  
    DadaView dv = new DataView(DataGrid2.)
    不知道应该在.的后面写什么属性
      

  6.   

    DadaView dv = new DataView(DataGrid2.DataSource);行不行
      

  7.   

    哈哈
    刚刚做过这种东东,楼主听好
    把绑定DataGrid写成一个单一的方法
    Page_load 里
    {
      if(!this.IsPostBack)
      {
       绑定dropdownlist
       this.BindGrid(this.ddlGame.SelectedValue);
       }
    }
    private void BindGrid(string Game)
    {
                               YsDeposit ys=new YsDeposit();
    //根据方法返回DataSet
                               DataSet ds=ys.GetYsDepositInfoByGame(Game);
    this.DgGrid.DataSource=ds;
    this.DgGrid.DataBind();
    }
    定义一个DropDownList,id为ddlGame,AutoPostBack=true private void ddlGame_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    this.DgGrid.CurrentPageIndex=0;
    this.BindGrid(this.ddlGame.SelectedValue);
    }
     
    每次调用BindGrid,传递合适的Game就ok了,好好体会体会
      

  8.   

    Select * from soccer_player where name='Herry'
      

  9.   

    xulovewei(耗子爱猫咪) 
    这样只是不用写sql 而不是不用查询数据库