假设你的DataGrid绑定的DataView 是dv
举个例子,如果你要查找Name为XXX的,
dv.RowFilter="NAME=XXX";
datagrid1.DataSource=dv;
datagrid1.DataBind();

解决方案 »

  1.   

    我最近做了一个可以n次检索的控件,主要依赖于存储过程的编写,下面是代码
    CREATE PROCEDURE MultiConditionSearch
    @tableName varchar(20),
    @strNames          varchar(100),
    @strValues varchar(100)
    as
    declare @sql nvarchar(1000)
    set @sql = ''
    if(@strNames = 'ALL')
    begin
    set @sql = 'select * from ' + @tableName
    end
    else
    begin
    select @strNames = @strNames + ',',@strValues = @strValues + ','

    while(@strNames <> '')
    begin
    set @sql = @sql + substring(@strNames,1,charindex(',',@strNames) - 1) + '=' +'''' + substring(@strValues,1,charindex(',',@strValues) - 1) + ''' and ' select @strNames = substring(@strNames,charindex(',',@strNames) + 1,datalength(@strNames))
    select @strValues = substring(@strValues,charindex(',',@strValues) +1,datalength(@strValues))
    end set @sql = 'select * from ' + @tableName +' where ' + @sql +' 1=1'
    end
    exec(@sql)
    GO
    有点复杂,主要功能是从某表中根据输入的条件字符串检索,两个字符串分别是字段名组合与字段值组合,中间用逗号分隔.程序中通过收集查询条件,然后调用存储过程,条件收集时分别构造两个字符串作为参数,可以用StringBuilder和Session(因为我的程序中点击查询后页面重新加载,所以没用ViewState),当然可以用CheckBox来判断是否为再次检索:)
    我的方法希望对你有所帮助!
      

  2.   

    两个方法,呵呵,这个问题我也问过,后来利用Session解决了,就如楼上提出的方法一样.
    1.利用Viewstate
    2.利用Session/Cookies
      

  3.   

    我的方法是用ViewState存储查询条件,然后需要二次查询的时候,拼写查询条件就可以了:)
      

  4.   

    可以把查询条件联合起来.实际上只是对第一次的结果再进行一次筛选.
    比如:
    第一次:"Select * from table where name=xxx"
    第二次=第一次 & "and sex=''"
    这样多次查询都可以的.