DataList绑定照片并分页
来源:互联网 发布:mac jdk1.7 dmg 编辑:程序博客网 时间:2024/04/30 04:51
善良公社中需要上传图片,然而上一篇是通过自定义图片控件实现的,通过研究了Dalist发现它对于绑定图片十分方便,并且可以分页,这里来分享一下。
在Web页面中的代码:
<form id="Form1" runat="server"> <asp:DataList ID="dlPictrue" runat="server" RepeatColumns="5" RepeatDirection="Horizontal"> <ItemTemplate> <asp:Image ID="Image1" runat="server" Width="140px" ImageUrl='<%#DataBinder.Eval (Container.DataItem, "PhotoUrl","Photo/{0}") %>' Height="170px" /> <p style="text-align: center"> <asp:Label ID="lblName" runat="server" Text='<%#Eval("PhotoName") %>' Font-Size="12px"></asp:Label> </p> </ItemTemplate> </asp:DataList> <br /> <p style="height: 23px; width: 700px; text-align: center; font-size: 16px;" background="images/相册_09.jpg"> 当前页码为[<asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label>]页 总页码[<asp:Label ID="lblSumPage" runat="server" Text="0"></asp:Label>]页 <asp:LinkButton ID="lnkBtnFirst" runat="server" Font-Underline="False" OnClick="lnkBtnFirst_Click"> 第一页 </asp:LinkButton> <asp:LinkButton ID="lnkBtnPrevious" runat="server" Font-Underline="False" OnClick="lnkBtnPrevious_Click"> 上一页 </asp:LinkButton> <asp:LinkButton ID="lnkBtnNext" runat="server" Font-Underline="False" OnClick="lnkBtnNext_Click"> 下一页 </asp:LinkButton> <asp:LinkButton ID="lnkBtnLast" runat="server" Font-Underline="False" OnClick="lnkBtnLast_Click"> 末一页 </asp:LinkButton> </p> </form>后台代码
后台将对分页的前进页写事件,
protected void Page_Load(object sender, EventArgs e) { DataListBind(); }
///// <summary> ///// 绑定当前用户的照片 ///// </summary> public void DataListBind() { //判断用户是否已经登录 //if (Session["UserID"] == null) //{ // Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('您尚未登录,请登录!');</script>"); // return; //} DataTable dt = new DataTable(); dt.Columns.Add(new DataColumn("PhotoID", typeof(string))); dt.Columns.Add(new DataColumn("PhotoName", typeof(string))); dt.Columns.Add(new DataColumn("PhotoUrl", typeof(string))); dt.PrimaryKey = new[] { dt.Columns["PhotoID"] }; //实例化一个B层对象 userPhotoBLL userphotobll = new userPhotoBLL(); //实例化一个实体的对象 userPhotoEntity enUserPhoto = new userPhotoEntity(); if (Session["ID"]==null) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('查看的用户不存在!');</script>"); return; } enUserPhoto.UserID = Session["ID"].ToString();//获取查看当前用户的ID string strWhere = "UserID='" + enUserPhoto.UserID + "'"; //根据查询条件获得数据列表 DataSet ds = userphotobll.GetList(strWhere); //根据是否有记录来进行显隐 if (ds.Tables[0].Rows.Count == 0) { NoImage.Visible = true; //有数据则显示出来 } else { NoImage.Visible = false; //无数据则隐藏 } //根据表中记录数循环加载图片信息 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows.Count > 0) { DataRow dr = dt.NewRow(); dr[0] = ds.Tables[0].Rows[i][1].ToString(); dr[1] = ds.Tables[0].Rows[i][2].ToString(); dr[2] = ds.Tables[0].Rows[i][5].ToString(); dt.Rows.Add(dr); } } PagedDataSource pds = new PagedDataSource(); pds.DataSource = dt.DefaultView; //将查询结果绑定到分页数据源上。 pds.AllowPaging = true; //允许分页 pds.PageSize = 12; //设置每页显示多少张图片 pds.CurrentPageIndex = Convert.ToInt32(lblCurrentPage.Text) - 1; //设置当前页 lnkBtnFirst.Enabled = true; //控件翻页控件都设置为可用 lnkBtnLast.Enabled = true; lnkBtnNext.Enabled = true; lnkBtnPrevious.Enabled = true; if (lblCurrentPage.Text == "1") //如果当前显示第一页,“第一页”和“上一页”按钮不可用。 { lnkBtnPrevious.Enabled = false; lnkBtnFirst.Enabled = false; } if (lblCurrentPage.Text == pds.PageCount.ToString()) //如果显示最后一页,“末一页”和“下一页”按钮不可用。 { lnkBtnNext.Enabled = false; lnkBtnLast.Enabled = false; } lblSumPage.Text = pds.PageCount.ToString(); //实现总页数 //将分页结果绑定到DataList控件上 dlPictrue.DataSource = pds; //绑定数据源 dlPictrue.DataKeyField = "PhotoID"; dlPictrue.DataBind(); } /// <summary> /// 第一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkBtnFirst_Click(object sender, EventArgs e) { lblCurrentPage.Text = "1"; DataListBind(); } /// <summary> /// 前一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkBtnPrevious_Click(object sender, EventArgs e) { lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) - 1).ToString(); DataListBind(); } /// <summary> /// 下一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkBtnNext_Click(object sender, EventArgs e) { lblCurrentPage.Text = (Convert.ToInt32(lblCurrentPage.Text) + 1).ToString(); DataListBind(); } /// <summary> /// 最后一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkBtnLast_Click(object sender, EventArgs e) { lblCurrentPage.Text = lblSumPage.Text; DataListBind(); }这样照片在页面加载的时候就出来。我觉得DataList很方便,如果不是JS中写出来不兼容IE8,也不会考虑后台的这种写法,不过用了这种绑定也的确简单,起码各个浏览器是没问题。等深入研究JS后,再做个版本出来。
需要的朋友可以去下载一下看看
- DataList绑定照片并分页
- Datalist数据绑定分页
- ASP.NET DataList绑定数据并实现分页
- 使用DataList控件绑定数据并实现分页
- DataList数据绑定与分页
- DataList的绑定和分页
- ASP.NET中对DataList控件进行数据绑定并分页
- ASP.NET中对DataList控件进行数据绑定并分页
- .net 后台动态添加datalist 并绑定
- DataList嵌入绑定DataList
- datalist,repeater等绑定控件的分页代码
- AspNetPager.dll分页控件绑定gridview,datalist,repeater
- datalist分页
- DataList 分页
- datalist分页
- DataList分页
- datalist 分页
- DataList分页
- 友元函数在模版类中的使用方法举例
- Java之代理
- 编程中数学运算需注意的小问题!!!!!!
- lcd与led的区别
- 蓝牙扫描器 二维码扫描 一维码扫描 蓝牙传输 输入法源码
- DataList绑定照片并分页
- hdu 2089 不要62
- 时间子系统15_获取系统时间
- ios开发(七):IBOutlet IBAction
- 中国象棋将帅问题
- tcpdump抓包规则命令大全
- POJ 2262 Goldbach's Conjecture
- Oracle Statistic 统计信息(Dave)
- Java中的多线程