当前位置:编程学习 > C#/ASP.NET >>

【!急!】如何让RadioListBox在翻页的时候不会初始化???

RadioListBox相当于是一个筛选器,比如可以查看“未通过名单”“通过名单”“所有名单”,然后单击一个选项就可用查看相应的一些数据,RadioListBox已经AutoPostBack了。

数据绑定用的是Repeater来显示的。翻页的用的是Lable超链接,当我单击翻页链接的时候,本来地址是xxx.aspx?topage=2&npage=通过名单,表示我要查看第二页的通过名单的数据,可是一点击翻页后,RadioListBox就初始化到“所有名单”了,显示数据也变成了第二页的所有数据的东西了xxx.aspx?topage=2&npage=所有名单……

现在求高手帮我解决这个问题,如何翻页后还是显示的当前的RadioListBox的所有数据???困扰我两天了……

              DataSet ds = new DataSet();
            string npage = q("npage");
            string switchRB1 = RB1.SelectedValue;

            int PageSize = 2;
            int PageCount, RecordCount;
            int ToPage = Convert.ToInt32(Request.QueryString["ToPage"]);
            string pagesql = null, sql = null;
            switch (switchRB1)
            {
                case "未通过审核":
                    sql = "select count(id) from Company_Basemeans where isPast='未通过'";
                    break;
                case "通过审核":
                    sql = "select count(id) from Company_Basemeans where isPast='通过'";
                    break;
                case "企业总数":
                    sql = "select count(id) from Company_Basemeans";
                    break;
                case "申请图招":
                    sql = "select count(id) from Company_Basemeans where piczp = '申请通过图招'";
                    break;
            }
            string sqlstr = ConfigurationManager.ConnectionStrings["0745Job"].ToString();
            SqlConnection conn = new SqlConnection(sqlstr);
            SqlCommand MyComm = new SqlCommand(sql, conn);
            conn.Open();
            RecordCount = Convert.ToInt32(MyComm.ExecuteScalar());
            conn.Close();

            if (RecordCount % PageSize != 0)
            {
                PageCount = RecordCount / PageSize + 1;
            }
            else
            {
                PageCount = RecordCount / PageSize;
            }

            if (ToPage == Convert.ToInt32(null))
            {
                ToPage = 1;
            }

            if (ToPage > PageCount)
            {
                ToPage = PageCount;
            }
            if (ToPage <= 1)
            {
                switch (switchRB1)
                {
                    case "未通过审核":
                        pagesql = "select....";
                        break;
                    case "通过审核":
                        pagesql = "select....";
                        break;
                    case "企业总数":
                        pagesql = "select....";
                        break;
                    case "申请图招":
                        pagesql = "select....";
                        break;
                }
            }
            else
            {
                switch (switchRB1)
                {
                    case "未通过审核":
                        pagesql = "select....";
                        break;
                    case "通过审核":
                        pagesql = "select....";
                        break;
                    case "企业总数":
                        pagesql = "select....";
                        break;
                    case "申请图招":
                        pagesql = "select...."
                        break;
                }
            }
            if (ToPage <= 1)
            {
                LinkPrev.Enabled = false;
                Linkhead.Enabled = false;
                CurrentPage.Text = "1";
            }
            else
            {
                LinkPrev.Enabled = true;
                LinkPrev.NavigateUrl = "?ToPage=" + (ToPage - 1) + "&npage=" + switchRB1;
                Linkhead.Enabled = true;
                Linkhead.NavigateUrl = "?ToPage=1&npage=" + switchRB1;
            }
            if (ToPage >= PageCount)
            {
                LinkFoot.Enabled = false;
                LinkNext.Enabled = false;
                CurrentPage.Text = PageCount.ToString();
            }
            else
            {
                LinkFoot.Enabled = true;
                LinkFoot.NavigateUrl = "?ToPage=" + PageCount + "&npage=" + switchRB1;
                LinkNext.Enabled = true;
                LinkNext.NavigateUrl = "?ToPage=" + (ToPage + 1) + "&npage=" + switchRB1;
            }
            //**********************Label控件绑定**********************
            TotalPage.Text = Convert.ToString(PageCount);
            CurrentPage.Text = Convert.ToString(ToPage);
            LbRecord.Text = RecordCount.ToString();
            LbPageRecord.Text = PageSize.ToString();
            //**********************数据绑定**********************
            SqlDataAdapter da = new SqlDataAdapter(pagesql, conn);
            da.Fill(ds, "ShowPage");

            RP1.DataSource = ds.Tables["ShowPage"].DefaultView;
            RP1.DataBind(); --------------------编程问答-------------------- 既然你把查询方式通过QueryString跨页面提交了,那么在页面的Page_Load事件里添加修改RadioButtonlist的代码:

// Page_Load event 

if(!string.IsNullOrEmpty(Request.QueryString["npage"]){

    // 增加修改RadioButtonList的代码
    switch(Request.QueryString["npage"]){
      case "...":

    }

}
else {

} --------------------编程问答-------------------- 可以用viewstate/session之类的保存他的状态,然后在开始前判断是否有值--- --------------------编程问答-------------------- 在Page_load里面维护radiobutton的状态。 --------------------编程问答-------------------- 在Page_load里面维护radiobutton的状态;
将接受的Request.QueryString["npage"]不为空的值赋值给RadioListBox.SelectValue,分页也是。
不过你的需求似乎表达的还不太明确!页面是怎么设计的,需要什么样的功能等再说的明确点 --------------------编程问答-------------------- 说的很明确了啊,根据RadioListBox的选项值来显示数据列表,然后翻页的时候应该还是显示的当前RadioListBox的选项值的数据列表。现在问题是翻页后,RadioListBox就被初始化了。比如“通过”“未通过”“所有”,当我选择“通过”查看所有通过的用户资料,就应该显示通过用户的数据列表,可是却显示了“所有”用户的数据列表,也就相当于被初始化了:(

如果大家有类似的分页例子,希望能加我QQ:66477347,定当厚礼回报。
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,