首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请求在此上下文中不可用有关问题,控件作为参数

2013-10-31 
请求在此上下文中不可用问题,控件作为参数本帖最后由 diglog 于 2013-10-30 12:17:02 编辑写了一个公共函

请求在此上下文中不可用问题,控件作为参数
本帖最后由 diglog 于 2013-10-30 12:17:02 编辑 写了一个公共函数放在app_code中,但是在其他页面调用时报错:System.Web.HttpException: 请求在此上下文中不可用,求解。

app_code:bll.cs 主要是想把Repeater之类的控件作为函数参数用


   public void Paging(int totalrecord, int PageSize, int DigitNo, Control pagediv, Repeater rpt,string table,string id)
    {
        int CurrentPage, PageStart, PageEnd, TotalPage;
        //****************************************//计算总页数
        int pn1 = totalrecord / PageSize, pn2 = totalrecord % PageSize;
        if (pn2 != 0)
            TotalPage = pn1 + 1;
        else
            if (pn1 == 0)
                TotalPage = 1;
            else
                TotalPage = pn1;
        //****************************************
        if (Request.QueryString["page"] == null)//获取当前页码
            CurrentPage = 1;
        else
            CurrentPage = Convert.ToInt16(Request.QueryString["page"]);

        PageStart = 1;//起始数字逻辑判断
        if (CurrentPage >= DigitNo + 2)
            PageStart = CurrentPage - DigitNo;

        PageEnd = CurrentPage + DigitNo;//结束数字逻辑判断
        if (PageEnd > TotalPage + 1)
            PageEnd = TotalPage + 1;

        if (CurrentPage != 1)
        {
            HyperLink FP = new HyperLink();//生成首页文字按钮
            FP.Text = "首页"; FP.Style["color"] = "#06C";
            FP.NavigateUrl = "?page=1";
            HyperLink PP = new HyperLink();//生成上一页文字按钮
            PP.Text = "上一页"; PP.Style["color"] = "#06C";
            PP.NavigateUrl = "?page=" + (CurrentPage - 1);
            pagediv.Controls.Add(FP);//将文字分页按钮装入pagediv容器
            pagediv.Controls.Add(PP);
        }

        for (int i = PageStart; i < PageEnd; i++)//生成中间数字按钮,并进行相关判断
        {
            HyperLink no = new HyperLink();
            no.Text = i.ToString();
            no.NavigateUrl = "?page=" + i;
            no.CssClass = "pagediv";
            if (i == CurrentPage)
            {
                no.Enabled = false;
                no.CssClass = "current";
            }
            pagediv.Controls.Add(no);//将数字分页按钮装入pagediv容器
        }

        if (CurrentPage != TotalPage)
        {
            HyperLink LP = new HyperLink();//生成尾页文字按钮
            LP.Text = "尾页"; LP.Style["color"] = "#06C";
            LP.NavigateUrl = "?page=" + TotalPage;


            HyperLink NP = new HyperLink();//生成下一页文字按钮
            NP.Text = "下一页"; NP.Style["color"] = "#06C";
            NP.NavigateUrl = "?page=" + (CurrentPage + 1);
            pagediv.Controls.Add(NP);//将文字分页按钮装入pagediv容器
            pagediv.Controls.Add(LP);
        }
        //绑定数据库******************************降序排列
        int StartIndex = (CurrentPage - 1) * PageSize + 1;
        rpt.DataSource = DT("select top " + PageSize + " * from "+table+" where "+id+" <= (select min("+id+") from (select top " + StartIndex + " " + id + "  from "+table+" order by "+id+" desc)) order by "+id+" desc");
        rpt.DataBind();
    }




调用页面:.aspx.cs


    bll bl = new bll();
    int RecordNo() { return bl.CountData("select count(b_id) from bianmin"); }//记录总数

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bl.Paging(RecordNo(), 2, 5, pagediv, Repeater1, "bianmin", "b_id");
        }
    }
控件 分页 c
[解决办法]
Request 改成 System.Web.HttpContext.Current.Request 

热点排行