asp.net3.5+sql2005,在一个页面中使用listview+datapager来显示数据,默认加载所有数据,点击前一页,后一页都正常。
页面上还有个查询按钮和几个文本框,在文本框里边输入字符后点击查询按钮可以查到符合条件的记录,若此时点击前一页,后一页,则listview中显示的数据变成了默认加载的数据,怎么解决这个问题?
代码如下:    string tlb,sql;
    SqlParameter[] parms=null;    protected void Page_Load(object sender, EventArgs e)
    {
        tlb = Request.QueryString["lb"].ToString();
        sql = "select * from jtry where lb=@lb order by id desc";
        parms = new SqlParameter[] { new SqlParameter("@lb", tlb) };
    }    void BindData(string strsql,SqlParameter[] pars)
    {
        listre.DataSource = AcHelper.GetTable(CommandType.Text, strsql, pars );
        listre.DataBind();
    }    protected void Page_PreRender(object sender, EventArgs e)
    {
        //加载所有记录//listview数据绑定必须放在这里,否则得不到正确结果
        BindData(sql, parms);
    }
    protected void btn_search_Click(object sender, ImageClickEventArgs e)
    {
        string mc, bm, nf, ch, sj;
        mc = tmc.Text.Trim();
        bm = tbm.Text.Trim();
        nf = tnf.Text.Trim();
        ch = tch.Text.Trim();
        sj = tsj.Text.Trim();        sql = "select * from jtry where lb='"+tlb+"'";
        if (mc != "")
            sql += " and dw=@mc ";
        if (bm != "")
            sql += " and bm=@bm ";
        if (nf != "")
            sql += " and synf=@nf ";
        if (ch != "")
            sql += " and chmc=@ch ";
        if (sj != "")
            sql += " and sysj=@sj ";
        sql += " order by id desc ";        parms = new SqlParameter[]{
            new SqlParameter ("@mc",mc),
            new SqlParameter ("@bm",bm),
            new SqlParameter ("@nf",nf),
            new SqlParameter ("@ch",ch),
            new SqlParameter ("@sj",sj)
        };        BindData(sql, parms);
    }