在哪里将querystring中的值传递到下拉列表并刷新网格if!ispostback



有一个简单的表单,它有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();

这是假设GridView1DataSourceID属性被设置为dsTodo

最新更新