zoukankan      html  css  js  c++  java
  • WAP中图像列表的设计

      在ASP.net中设计WAP时,发现没有ImageList控件,只得自己设计了。设计时主要使用Image和LINK控件。我做成了一个用户控件PicList.ascx。界面如下:

    最上面为Panel控件,用于显示图像列表,下面有“上页”和“下页”以及可以选择到某一页。
    --wap.joymo.cn
    代码如下:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.Mobile;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.MobileControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Configuration;

    //  内容来自wap.joymo.cn
    //  作者:freemobile

    namespace joymo
    {
        public partial class usercontrol_PicList : System.Web.UI.MobileControls.MobileUserControl
        {
            public DataTable PicData; // 由调用控件的页面赋值
            private int _pageSize = 0;
            private int _pageCount = 0;

            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack && PicData != null)
                {
                    try
                    {
                    GetSelectPage(Math.Abs(Convert.ToInt32(Request.QueryString["page"])));
                    }
                    catch(Exception ex)
                    {}
                }
            }

            // 显示相应页数的页面 -- wap.joymo.cn
            protected void GetSelectPage(int page)
            {
                _pageSize = Convert.ToInt32(ConfigurationManager.AppSettings["PicPageSize"]); // 每页的条数

                if (PicData != null && PicData.Rows.Count > 0)
                {
                    int itemCount = PicData.Rows.Count;

                    _pageCount = 0;
                    if(itemCount%_pageSize != 0)
                        _pageCount = itemCount / _pageSize + 1;
                    else
                        _pageCount = itemCount / _pageSize;

                    int startID = page * _pageSize;
                    if (startID >= itemCount)
                        startID = (_pageCount - 1) * _pageSize;

                    int endID = startID +  _pageSize;

                    for (int i = startID; i < (itemCount>endID?endID:itemCount); i++)
                    {
                        System.Web.UI.MobileControls.Image img = new System.Web.UI.MobileControls.Image();
                        img.ImageUrl = (string)PicData.Rows[i][0]; // 缩略图片
                        img.NavigateUrl = (string)PicData.Rows[i][1]; // 实际图片位置
                        img.BreakAfter = false;
                        Panel1.Controls.Add(img);

                        Link linkMemo = new Link();
                        linkMemo.Text = (string)PicData.Rows[i][2]; // 图片描述
                        linkMemo.NavigateUrl = (string)PicData.Rows[i][1];
                        Panel1.Controls.Add(linkMemo);
                    }

                    if (page == 0)
                    {
                        LinkPre.NavigateUrl = Page.Request.FilePath + "?page=0"; // "上页"链接
                        LinkNext.NavigateUrl = Page.Request.FilePath + "?page=0"; // "下页"链接
                    }
                    else
                    {
                        LinkPre.NavigateUrl = Page.Request.FilePath + "?page=" + (page - 1);
                        LinkNext.NavigateUrl = Page.Request.FilePath + "?page=" + (page + 1);
                    }

                    LabPage.Text = "共" + _pageCount + "页->第" + (page + 1) + "页";
                }
            }
            protected void CmdGo_Click(object sender, EventArgs e)
            {
                 try
                 {
                ((MobilePage)Page).RedirectToMobilePage(Request.FilePath + "?page=" + Math.Abs(Convert.ToInt32(TextBox1.Text)-1));
                 }
                 catch(Exception ex)
                 {}
            }
    }
    }
    最终的执行效果如下:




  • 相关阅读:
    进程状态
    VMware虚拟机的三种联网方法及原理
    关于C++迭代器失效
    头文件:limits.h、float.h
    正则表达式之一:元符号
    MYSQL之批量插入数据库
    PHP之如何判断数字(数字字符串不算)
    使用Process Monitor来得到程序运行参数
    Abusing the C preprocessor
    1+1还是1+1=2?
  • 原文地址:https://www.cnblogs.com/freemobile/p/575062.html
Copyright © 2011-2022 走看看