这几天在学习做一个民意调查的小程序,每天解决一点点遇到的问题,算是一点点的慰藉了,不然对我的打击也太大了,因为是一门菜鸟,所以,所有的内容都是在代码解决的层面上,所有,没有什么技术含量,仅仅是用代码来解决问题。

今天的任务是从A页面的gridview控件中点击超链接,跳转到B页面,B页面的datalist控件显示A页面所点击的超链接的详细内容,并进行分页显示,图示如下:

A页面显示信息,点击超链接进入B页面

在这里,直接使用的AccessDataSource控件进行数据绑定,然后添加列,对列信息进行设置,设置内容如下:

 

 

如此一来,点击超链接,就可进行值传递,这里传递的是主键ID,跳转到B页面:

页面如下:

 

 

 

同样的使用数据控件,在这里使用的FormView控件绑定datasource控件,因为涉及到只显示一条信息,然后下面紧接着是回复文本框。数据源的控件设置如下:

 

 

这样,不使用任何代码,只有鼠标操作就可以实现页面信息的传递。

下面是关于数据源控件的分页问题:

所以,在绑定数据源的时候要采用代码实现,当然在gridview中可以直接设定属性,但是,gridview的行显示毕竟是个限制,分页代码如下:

  protected void Page_Load(object sender, EventArgs e)
    {
        Label2.Text = Request.QueryString["id"].ToString();//取传递过了的ID值
        int pollid = Convert.ToInt32(Label2.Text.ToString());
     
        OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath("~/App_Data/poll.mdb"));
        OleDbDataAdapter da = new OleDbDataAdapter("select * from option2 where 所属poll='" + pollid + "'order by pid DESC", con);
        DataSet ds = new DataSet();
        da.Fill(ds, "News");
        //创建分页类
        PagedDataSource objPage = new PagedDataSource();
        //设置数据源
        objPage.DataSource = ds.Tables["News"].DefaultView;
        //开启分页
        objPage.AllowPaging = true;
        //显示显示的行数 
        objPage.PageSize = 3;
        //定义变量保存当前页索引
        int curPage;
        //判断当前页是否有跳转请求
        if (Request.QueryString["Page"] != null)
            curPage = Convert.ToInt32(Request.QueryString["Page"]);
        else
            curPage = 1;
        objPage.CurrentPageIndex = curPage - 1;
        this.Label3.Text = curPage.ToString();
        this.Label4.Text = objPage.PageCount.ToString();
        if (!objPage.IsFirstPage)
        { //定义"上一页"超级连接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引植

            this.HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage - 1)+"&id="+Label2 .Text;
        }//在这里一定要再次传递id的值,因为点击linkbutton控件后,页面回传,通过gridview设定传过来的ID值会变为空值,会提示错误信息,未进行初始化的问题,所以需要再次传值,以连接上面的取值~
        if (!objPage.IsLastPage)
        {
            //下一页
            this.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(curPage + 1) + "&id=" + Label2.Text;
        }
        this.HyperLink3.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(objPage.PageCount) + "&id=" + Label2.Text;
        this.HyperLink4.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(1) + "&id=" + Label2.Text;
        this.DataListWD.DataSource = objPage;//绑定数据
        DataListWD.DataBind();   
    }

 

ok,今天上午的任务就是这样了~

posted on 2010-11-08 10:08  lovechenxiao  阅读(660)  评论(1编辑  收藏  举报