a.aspx中是查询页面   一个按名称 一个按类别
名称文本框是输入想要查询的关键字
类别是下拉文本,已经和数据库的数据源绑定好了
查询结果在GridView中显示
功能已经实现,这没问题我的问题是
现在又有一个b.aspx页面
里面只有  名称文本框 和  类别是下拉文本
类别下拉文本也已绑定好了
怎样实现我在b中输入查询关键词,点击查询后 先然后转到a 然后a中的GridView显示查询结果,同时不影响a的本页查询,当在a中在重新输入查询关键词时,a中的GridView显示新的查询结果。
当不输入名称只选择了类别是,GridView中显示所有这一类别的数据。
谢谢

解决方案 »

  1.   

    URL传参吧    xx.aspx?type=1&key=123如果参数中有中文,需要先将参数编码,然后在接收页面解码。
      

  2.   

    .......晕  LZ应该是一时脑袋没转过弯。你B页面肯定有个BUT按钮吧.   当按下按钮的时候  把类别下拉框和文本框里面的值传递给a页面.在a页面的load事件里面 进行获取传递过来的值并查询...
      

  3.   

    确实是这样的
    但是当我只选择一个类别查询时,转到a后没结果。而在a中重新选择这一类别查询,却显示出了结果
    代码是这样的 求正解
    if (!IsPostBack)
                {
                    InitData();
                    selectchx.Items.Clear();
                    selectyqName.Text = Request.QueryString["mingcheng"];
                    string ss = Request.QueryString["leibie"];
                    selectchx.Items.Add(new ListItem(ss,"0"));
                    selectchx.DataMember = selectchx.Text;
                    Query();
                    ResetQueryValue();
                    //selectchx.Items.Clear();
                    //InitData();
                }
            }        /// <summary>
            /// 初始化页面数据
            /// </summary>
            protected void InitData()
            {
                //初始化:类别下拉框中的数据,用Category表中的数据进行绑定
                DataTable dt = Category.Query(new Hashtable());
                selectchx.Items.Clear();
                selectchx.Items.Add(new ListItem("全部", ""));
                foreach (DataRow dr in dt.Rows)
                {
                    selectchx.Items.Add(new ListItem(dr["CategoryName"].ToString(), dr["CategoryId"].ToString()));
                }
            }
            /// <summary>
            /// 根据页面上用户输入的查询条件,查询仪器数据
            /// </summary>
            private void Query()
            {
                //初始化:GridView的数据源
                Hashtable queryItems = new Hashtable();
                queryItems.Add("yqName", selectyqName.Text);
                queryItems.Add("yqleibieId", selectchx.SelectedValue);
                DataTable dt = Yq.Queryyqs(queryItems);            GV.DataSource = dt;
                GV.DataBind();            //保存下拉框的选择项到ViewState数组对象
                ViewState.Add("selectchx", selectchx.SelectedValue);            LabelPageInfo.Text = "查询结果(第" + (GV.PageIndex + 1).ToString() + "页 共" + GV.PageCount.ToString() + "页)";
            }
            /// <summary>
            /// “查询”按钮单击事件
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            protected void selecebutton_Click(object sender, System.EventArgs e)
            {
                Query(); //查询仪器数据
                ResetQueryValue(); //恢复下拉框选择项
            }