对分页的GridView遍历问题 我有一个分页的gridview(用的是自带的分页) 我想遍历所以记录,但是它只遍历了当前页,在网上找了很多 说可以通过Gridview的sqlDatasource可以但是sqldatasource怎么遍历啊或者还有其他的方法吗?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 sqldatasource是个object ,都是用dataset ,datatable,dataview绑定数据集的你可以拆箱成以上类型就可以进行数据集操作 不去遍历GridView,去遍历DataTable DataSet ds=gridview1.DataSource as DataSet;foreach(DataRow dr in ds.Tables[0]){ ....} DataTable dtMyTable=GetAllData();for(int i=0;i<dtMyTable.Rows.Count;i++){ //code} 看你数据源的类型了 dataSet,dataTable,ArryList...以DataSet为例: DataSet ds = (DataSet)MygridView.DataSource; if (ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { } } 我按照上面的方法做的但是却报ds.table[0]未将对象引用设置到对象的实例。这怎么改啊 DataSet ds =GridView1.DataSource as DataSet;我这样写 为什么ds的值是null TO:zhj__zhj 我gridview中的数据是直接用sqldatasource向导生成的 你用的绑定是SqlDataSource还是自己写的DataSet SqlDataSource IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while (enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); } IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while(enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); } TO:yb1124 str = ((DataRowView)enumerator.Current).Row["ID"].ToString();if(str!=1) {在这里我要把那行隐藏掉应该怎么写呢} IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while(enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); if(str!=1) { enumerator.MoveNext(); } } 不明白你的意思IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while(enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); if(str==1) { enumerator.MoveNext(); } } 我要筛选gridview中的数据比如gridview中的数据是这样的id name1 aa2 bb3 aa4 aa5 cc如果我传进来的值是aa的话 那么name为bb和cc的那2条记录在gridview中要隐藏起来IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while(enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); if(str!=1) { enumerator.MoveNext(); } } 这样做不能实现 IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator(); while(enumerator.MoveNext()) { str = ((DataRowView)enumerator.Current).Row["ID"].ToString(); }这段代码是用来遍历已经绑定好的SqlDataSource的内容 DataSet ds=gridview1.DataSource as DataSet; foreach(DataRow dr in ds.Tables[0].Rows) { .... } 我还是不太明白你的意思,你想要数据怎么显示,,有了aa就不能有bb,ccSqlDataSource.SelectCommand 你是怎么写的sql语句怎么写的呢,只有这一种限制呢,还是说有了dd,就不能有ee,ff 刚开始的时候是显示全部数据的页面上还有个DropDownList 可以根据DropDownList的值来相应的改变gridview中的数据如果DropDownList选择了aa的话那gridview中只能显示aa的数据如果是cc就只能显示是cc的数据您明白我的意思了吗? 这回明白了,你应该在SqlDataSource1添加查询参数@name然后在DropDownList选择事件中SqlDataSource.SelectParameters.Add("@name",ddl.selectedvalue);重新绑定GridView 可以把你在list里面选择的值 当作参数传给SQL语句 只查询传过来的值的所有数据仁厚绑定到DATAVIEW上 当第一次加载是让它查询所有就可以了! 10203040 for (int i = dt.Rows.Count-1; i >=0 ; i--) { if (!dt.Rows[i]["price"].ToString().Equals("40")) { dt.Rows.Remove(dt.Rows[i]); } } GridView1.DataSource = dt; GridView1.DataBind(); 针对9楼的做法,应该将ds.table[0]改为ds.tables[0] 筛选数据可以根据 BindingSource.Filter 来筛选.另外我觉得用listview不是更好吗?那样自己想怎么改就怎么改,样式也好看/ 文本框问题 请教问题:QQ在线状态 Jquery自定义图片 PETSHOP怎么安装调试 怎样把图片的二进制流输出到HtmlTable控件的CELL中? 在代码中怎么定义sql中的money类型的变量呢? 急!!!!在线等 DataGrid的HeaderText设置问题 这段替换代码哪里错了? 高手请进:为什么要使用委托 关于反射中运行加载的问题! 文件上载后无法保存到其他目录,请指教 表格垂直居中问题? server.mappath需要using什么命名空间?
你可以拆箱成以上类型就可以进行数据集操作
foreach(DataRow dr in ds.Tables[0])
{
....
}
DataTable dtMyTable=GetAllData();for(int i=0;i<dtMyTable.Rows.Count;i++)
{
//code
}
以DataSet为例: DataSet ds = (DataSet)MygridView.DataSource;
if (ds.Tables.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
}
}
但是却报ds.table[0]未将对象引用设置到对象的实例。这怎么改啊
我这样写 为什么ds的值是null
while (enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
}
while(enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
}
if(str!=1)
{
在这里我要把那行隐藏掉应该怎么写呢
}
while(enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
if(str!=1)
{
enumerator.MoveNext();
}
}
IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator();
while(enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
if(str==1)
{
enumerator.MoveNext();
}
}
我要筛选gridview中的数据
比如gridview中的数据是这样的
id name
1 aa
2 bb
3 aa
4 aa
5 cc
如果我传进来的值是aa的话 那么name为bb和cc的那2条记录在gridview中要隐藏起来IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator();
while(enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
if(str!=1)
{
enumerator.MoveNext();
}
}
这样做不能实现
IEnumerator enumerator = SqlDataSource1.Select(new DataSourceSelectArguments()).GetEnumerator();
while(enumerator.MoveNext())
{
str = ((DataRowView)enumerator.Current).Row["ID"].ToString();
}
这段代码是用来遍历已经绑定好的SqlDataSource的内容
foreach(DataRow dr in ds.Tables[0].Rows)
{
....
}
SqlDataSource.SelectCommand 你是怎么写的
sql语句怎么写的呢,只有这一种限制呢,还是说有了dd,就不能有ee,ff
页面上还有个DropDownList 可以根据DropDownList的值来相应的改变gridview中的数据如果DropDownList选择了aa的话
那gridview中只能显示aa的数据
如果是cc就只能显示是cc的数据
您明白我的意思了吗?
然后在DropDownList选择事件中
SqlDataSource.SelectParameters.Add("@name",ddl.selectedvalue);
重新绑定GridView
仁厚绑定到DATAVIEW上 当第一次加载是让它查询所有就可以了!
20
30
40 for (int i = dt.Rows.Count-1; i >=0 ; i--)
{
if (!dt.Rows[i]["price"].ToString().Equals("40"))
{
dt.Rows.Remove(dt.Rows[i]);
}
}
GridView1.DataSource = dt;
GridView1.DataBind();
改为ds.tables[0]
另外我觉得用listview不是更好吗?那样自己想怎么改就怎么改,样式也好看/