筛选问题,高手们 100分,不够再加,顶者有分 有类函数支持过滤啊,到msdn上找 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考:http://blog.csdn.net/allenting/archive/2005/01/27/271072.aspx 你的问题没有说清楚,初步的结果是不是这样:public bool GetDataAndBind(ref System.Web.UI.WebControls.DataGrid dataGride){System.Data.DataSet dataSet = new System.Data.DataSet();//获取数据省略;System.Data.DataView dataView = new System.Data.DataView(dataSet.Tables["目标数据表"]);dataView.Sort = "条件表达式";dataGride.DataSource = dataView;dataGride.DataBind();} 回楼上的,:不是的,我是想能过dataview的筛选出记录,然后,找出该记录在datagrid的位置,也就是在datagrid是第几行的.还要得出该记录在dataset中是第几行.而那筛选过程我们要区分大小写或者部分匹配. 定位的问题,http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx 举个例子:从dataset中筛选出arrList中的所有记录System.Text .StringBuilder strBuilder=new System.Text.StringBuilder("ProjectNo in ("); foreach(object item in arrList) { strBuilder.Append ("'"+item.ToString().Trim()+"',"); } strBuilder.Remove (strBuilder.Length-1,1); //将最后一个Comma去掉 strBuilder.Append (")"); DataRow [] dataRows =ds.Tables [0].Select(strBuilder.ToString ()); //找出满足条件的所有行.........foreach(DataRow filterDR in dataRows){ DataTable dt=(DataTabble)dataGrid1.DataSource //如果数据原是表的话 foreach(DataRow dr in dt.Rows) { ......... }} 你可以在strBuilder中像sql的where子句一样,写出你的所有过滤条件.你如果还不清楚,我可以给你写一个例子. 我知道啊,如果,筛出以后,怎么让筛选出来到记录在DATAGRID中定位啊 //样列数据 private void Form1_Load(object sender, System.EventArgs e) { DataTable dt =new DataTable("Test"); dt.Columns.Add("ID",typeof(int)); dt.Columns.Add("code",typeof(Decimal)); dt.Rows.Add(new object[]{1,33.1}); dt.Rows.Add(new object[]{2,34.2}); dt.Rows.Add(new object[]{3,34.3}); dt.Rows.Add(new object[]{4,34.4}); DataView dv = new DataView(dt); dataGrid1.SetDataBinding(dv,null); } //如果你的 数据 没有一个唯一的数据,必须整个行进行匹配 private void button1_Click(object sender, System.EventArgs e) { DataView dv = dataGrid1.DataSource as DataView; BindingManagerBase bmb = this.BindingContext[dv]; DataRow[] drArr = dv.Table.Select("code=33.1 and ID=1"); if (drArr.Length> 0) { for (int i = 0; i < dv.Count; i++) { if (dv[i].Row.Equals(drArr[0])) { bmb.Position = i; } } } } //如果有唯一的 id 的化,不过这样会 毁坏 grid 上已经存在的 排序 private void button2_Click(object sender, System.EventArgs e) { DataView dv = dataGrid1.DataSource as DataView; BindingManagerBase bmb = this.BindingContext[dv]; dv.Sort = "ID"; int index = dv.Find(2); bmb.Position = index; } 选项卡文字问题 在UI上显示数据库数据的问题 寻求 高手 支招。 单步调试时,位置不准确,为什么啊? 用file上传文件的问题(急!) 急马上给分!静态结构图在Dawamish7.0体现的问题! 寻找有经验程序员合伙或合作 通过ADO.NET访问SqlServer数据库的通用类,你是如何设计的? ASP.NET+C#写的个人助理,欢迎下载PP 这个正则表达式怎么写啊? 如何让web控件的label.text输出为红色? C#究竟使用那种方式来进行网络通信好?
http://blog.csdn.net/allenting/archive/2005/01/27/271072.aspx
public bool GetDataAndBind(ref System.Web.UI.WebControls.DataGrid dataGride)
{
System.Data.DataSet dataSet = new System.Data.DataSet();
//获取数据省略;
System.Data.DataView dataView = new System.Data.DataView(dataSet.Tables["目标数据表"]);
dataView.Sort = "条件表达式";
dataGride.DataSource = dataView;
dataGride.DataBind();
}
不是的,我是想能过dataview的筛选出记录,然后,找出该记录在datagrid的位置,也就是在datagrid是第几行的.还要得出该记录在dataset中是第几行.而那筛选过程我们要区分大小写或者部分匹配.
http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx
System.Text .StringBuilder strBuilder=new System.Text.StringBuilder("ProjectNo in (");
foreach(object item in arrList)
{
strBuilder.Append ("'"+item.ToString().Trim()+"',");
}
strBuilder.Remove (strBuilder.Length-1,1); //将最后一个Comma去掉
strBuilder.Append (")");
DataRow [] dataRows =ds.Tables [0].Select(strBuilder.ToString ());
//找出满足条件的所有行
.........
foreach(DataRow filterDR in dataRows)
{
DataTable dt=(DataTabble)dataGrid1.DataSource //如果数据原是表的话
foreach(DataRow dr in dt.Rows)
{
.........
}
}
你如果还不清楚,我可以给你写一个例子.
private void Form1_Load(object sender, System.EventArgs e)
{
DataTable dt =new DataTable("Test");
dt.Columns.Add("ID",typeof(int));
dt.Columns.Add("code",typeof(Decimal));
dt.Rows.Add(new object[]{1,33.1});
dt.Rows.Add(new object[]{2,34.2});
dt.Rows.Add(new object[]{3,34.3});
dt.Rows.Add(new object[]{4,34.4});
DataView dv = new DataView(dt);
dataGrid1.SetDataBinding(dv,null);
}
//如果你的 数据 没有一个唯一的数据,必须整个行进行匹配
private void button1_Click(object sender, System.EventArgs e)
{
DataView dv = dataGrid1.DataSource as DataView;
BindingManagerBase bmb = this.BindingContext[dv];
DataRow[] drArr = dv.Table.Select("code=33.1 and ID=1");
if (drArr.Length> 0)
{
for (int i = 0; i < dv.Count; i++)
{
if (dv[i].Row.Equals(drArr[0]))
{
bmb.Position = i;
}
} }
}
//如果有唯一的 id 的化,不过这样会 毁坏 grid 上已经存在的 排序
private void button2_Click(object sender, System.EventArgs e)
{
DataView dv = dataGrid1.DataSource as DataView;
BindingManagerBase bmb = this.BindingContext[dv];
dv.Sort = "ID";
int index = dv.Find(2);
bmb.Position = index;
}