有一个简单的表单,它有6个下拉列表和一个网格视图。当任何下拉列表更改值时,通过更改select命令过滤网格。用户可以通过网格的一行在另一个页面中导航。
从另一个页面,用户有一个返回按钮,该按钮使用具有下拉列表值的查询字符串加载页面。
我想完成两件事:
1) 将值放入下拉列表中。这件事我做得很容易。
2) 接下来就是让网格显示基于这些值的数据。这是它的正常操作。
我以为如果我在页面加载中添加以下代码就可以了,但事实并非如此。我尝试了所有的项目,但没有成功。我可以让下拉列表保存我想要的值,但网格显示所有记录:
if (!IsPostBack)
{
if (Request.QueryString["ret"] != null)
{
string[] retvalues = Request.QueryString["ret"].Split('_');
Update_Search(retvalues);
dsTodo.SelectCommand = dsTodo.SelectCommand + Build_Where();
GridView1.DataBind();
}
}
最后两行存在于下拉列表上的selectedvaluechange evnet中,它们在正常操作中可以很好地过滤网格。
您正在设置SelectCommand
,但没有执行它。执行此操作:
dsTodo.SelectCommand = dsTodo.SelectCommand + Build_Where();
dsTodo.Select(DataSourceSelectArguments.Empty);
GridView1.DataBind();
这是假设GridView1
的DataSourceID
属性被设置为dsTodo
。