我用DataGrid绑定了一个表users,我想根据传过来的参数不同,比如默认显示users里的type,如传过来一个参数id=2,我就更改绑定项type为money,怎么实现

解决方案 »

  1.   

    web 还是 form?form:bindingSource1的filter属性设置一下。[vs2005]
    web:选择好数据源直接绑定好了。
      

  2.   

    简单写一下
    定义一个变量condition
    private string condition = "";
    然后在pageload里写
     string id = Request["id"];
    switch (type)
    {
       case "2":
           condition = "where type='money'"  
       break; 
       case "3":
           condition = "where type=..."  
       break;  
       case "4":
           condition = "where type=..."  
       break;  
    }
    比如你的sql语句是
    sql="select * from tb"
    现在改成
    sql="select * from tb "+condition这样就可以了其它地方都不用改动了!
      

  3.   

    楼上没理解我的意思,type和money都是users的项,
    users里包括type,money,username,password等项
    如果id=1,我的datagrid里显示type,username,password
    如id=2,我的datagrid里显示money,username,password
      

  4.   

    给你一个思路吧
    datagrid里面你拉四列type,money,username,password
    type,money 为隐藏列
    如果id = 1,则显示type列
    如果id = 2,则显示money列
      

  5.   

     程式也可以写成这样:
           string   id   =   Request["id"]; 
           if (id ==1 )
             {
                DataGrid1.Columns[0].Visible = true; //type 列
                 DataGrid1.Columns[1].Visible = false;//money 列         }
             else if(id == 2)
             {
                DataGrid1.Columns[0].Visible = false;
                DataGrid1.Columns[1].Visible = true;         }
      

  6.   

    如果你是在from程序中,貌似只能在数据源上下手.但是不建议在查询的时候做转换,那样效率不高,可以把符合的数据搞出来以后在程序后台组合一下需要的值.
    如果是在web中可以在显示的时候下手
    两个办法,一个是你在数据源上下手.令一个就是在显示的时候下手
    有一个ItemDataBound事件e.Item.Cells[].Text可以修改你想要的东西
      

  7.   

     string   id   =   Request["id"]; 
     string strSql="";
    switch   (id) 

          case   "1": 
                strSql="select  type as Tmp,username,password from users';
      
          break;   
          case   "2": 
                strSql="select  money as Tmp,username,password from users';      break;     
          } 
    绑定数据字段就是Tmp,username,password
    Ok?