我的form里有个MainGridView,连接的数据源是MainSqlDataSource ,执行                MainSqlDataSource.FilterExpression = "XXXX";
 后,怎样取得过滤后记录数呢

解决方案 »

  1.   

    Response.Write(((DataView)this.SqlDataSource1.Select(DataSourceSelectArguments.Empty)).Count);
      

  2.   

    // may be
    // xxxDataSource Selected 事件中....SqlDataSource1_Selected(...
    {
        int count = e.AffectedRows; // 当 SqlDataSOurce.DataSourceMode = System.Web.UI.WebControls.DataSourceMode.DataSet 时有效, = DataReader 始终返回 0
    }
      

  3.   

    cpp2017(慕白兄) 
    你的方法果然有效,能否解释一下呢 
    为什么 Select(DataSourceSelectArguments.Empty) 能取到顾虑后的值呢
      

  4.   

    1.
    没看到返回的是 DataView 类型迈?设置 FilterExpression 其实是设置到了内部基础类型 DataViewDataSourceSelectArguments.Empty 表示的是空查询参数
    2.
    SqlDataSource.FilterExpression 属性,获取或设置调用 Select 方法时应用的筛选表达式用于 FilterExpression 属性的语法为格式字符串样式的表达式。筛选表达式的语法与 RowFilter 属性所接受的语法相同,原因是筛选表达式应用于通过执行 Select 方法而返回的 DataView 对象的 RowFilter 属性。有关更多信息,请参见 Expression。 如果将参数添加到 FilterParameters 集合,还可以将格式字符串占位符(例如 "{0}")包含在表达式中,以替代参数值。将根据 FilterParameters 集合中的参数的索引来替换占位符。可以在 FilterExpression 属性中包括参数。如果参数为字符串类型或字符类型,则应将该参数放在单引号中。如果参数为数值类型,则不需要引号。FilterParameters 集合包含为 FilterExpression 属性所含有的占位符而计算的参数。仅当 SqlDataSource 控件处于 DataSet 模式时,它才支持筛选数据。FilterExpression 属性委托给与 SqlDataSource 控件关联的 SqlDataSourceView 对象的 FilterExpression 属性。
      

  5.   

    SqlDataSource.FilterExpression 属性   
    http://msdn2.microsoft.com/zh-cn/library/System.Web.UI.WebControls.SqlDataSource.FilterExpression(VS.80).aspxDataSourceSelectArguments 类  
    http://msdn2.microsoft.com/zh-cn/library/system.web.ui.datasourceselectarguments(VS.80).aspx
      

  6.   

    楼上说的是  自己没认真看MSDN,惭愧 
    结贴