快速上手wap网站开发.docx
《快速上手wap网站开发.docx》由会员分享,可在线阅读,更多相关《快速上手wap网站开发.docx(20页珍藏版)》请在冰豆网上搜索。
快速上手wap网站开发
快速上手wap网站开发
近来工作比较紧张,一直想写一些东西,无奈没有时间,现在开发的市移动wap论坛终于告一段落,现在将开发过程简单记录一下,以备日后参考,都是一些简单的使用过程,可为初次接触wap开发的提供一点点参考,高手可以忽略。
开发工具:
vs2008 模拟器:
vs自带仿真管理器 framework版本:
2.0
一。
配置环境:
vs2008中已经没有了新建wap的选项,所需的wap模板需要从网上下载:
下载地址:
模拟器可用openware((官方免费注册下载地址)pc2003中的pocketpc2003se仿真器—右键点解连接,然后再右键点击插入底座,运行后即可使用,不过在仿真管理器中地址不要用local,要用本机ip地址。
二。
建立数据库:
数据库采用sqlserver,建立一个名为wapDB的数据库,如下图:
然后添加一个用户表userinfo,如下图:
为数据库添加一条记录,如下图:
建立表document,用来存储发布的文章,表结构如下图:
先为document表添加20条数据,用来显示,如下图:
至此,数据库建立完毕,下面我们将采用vs2008来具体开发。
三。
建立工程,开始开发:
首先,我们建立一个testWap的项目,如下图:
将新建项目默任生成的default.aspx删除,新建一个login.aspx的mobilewebform模板(在第一步环境配置中按照说明将ASPNETMobileTemplates.rar中的文件拷贝到各个文件夹后,就会在新建项目中最下面的模板中显示mobile模板了),如下图:
建立好以后,按照上述方法再添加一个index.aspx的文件。
至此,我们所需的文件已经全部建立完成,login.aspx用来登录,登录后到index.aspx页面,此页面用来分页显示document文章表中的内容,并且可以添加文章记录。
(注意,做好网页后,需要在记事本中将我们刚才建立的login.aspx、index.aspx打开重新保存一下,保存编码改为utf-8,覆盖原文件即可,这样做是因为项目采用utf-8编码,如果不这样的话,页面含有中文的话就会显示为乱码。
),如下图:
然后开始编码,具体编码和中的编码过程一样,不同的就是换成了mobile控件,这里需要注意的vs下开发wap不支持可视化设计,我们只能在后台手工编码,当添加控件的时候,只要打上我们这里只用到了objectlist控件和textbox、textview控件以及command、Label控件,command控件其实就是button按钮,在mobile里叫command。
这里我们建立三个文件:
login.aspx:
登录页面
index.aspx:
分页显示文章页面,带有快速发表
view.aspx:
显示文章具体内容页面
三个页面源代码:
login.aspx 前台代码具体如下:
1.<%@ Page Language="C#" AutoEventWireup="true" Inherits="testWap.login" Codebehind="login.aspx.cs" %>
2.<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
3.
4.
//www.w3.org/1999/xhtml" >
5.
6.
7.Form id="Form1" runat="server">
--表单-->
8. Label ID="z1" Runat="server" Font-Size="Large" ForeColor="#3333cc">登录窗口
Label>
9.
--lbl_out:
信息标签,初始隐藏,登录失败后或退出系统时显示信息-->
10. Label ID="lbl_out" Runat="server" ForeColor="Red" Visible="false">
Label>
11. 用户名:
12. TextBox ID="tb_User" Runat="server" Size="10" >
TextBox>
--用户名输入框:
tb_User-->
13. 密码:
14. TextBox ID="tb_Pwd" Runat="server" Size="10" Password="True">
TextBox>
--密码输入框:
tb_Pwd-->
15.
16. Command ID="Button1" Runat="server" OnClick="Button1_OnClick" >登录
Command>
--登录按钮-->
17.
Form>
18.
19.
20.
21.
login.aspx.cs 后台代码具体如下:
1.using System;
2.using System.Collections;
3.using System.ComponentModel;
4.using System.Data;
5.using System.Drawing;
6.using System.Web;
7.using System.Web.Mobile;
8.using System.Web.SessionState;
9.using System.Web.UI;
10.using System.Web.UI.MobileControls;
11.using System.Web.UI.WebControls;
12.using System.Web.UI.HtmlControls;
13.using System.Data.SqlClient;
14.
15.namespace testWap
16.{
17. public partial class login :
System.Web.UI.MobileControls.MobilePage
18. {
19. protected void Page_Load(object sender, EventArgs e)
20. {
21. #region 系统退出时将信息标签lbl_out赋值并且显示
22. if (Session["loginOutInfo"] !
= null)
23. {
24. string outInfo = Session["loginOutInfo"].ToString();
25. this.lbl_out.Text = outInfo;
26. this.lbl_out.Visible = true;
27. Session.Clear();
28. }
29. #endregion
30. }
31.
32. ///
33. /// 登录验证
34. ///
35. ///
36. ///
37. protected void Button1_OnClick(object sender, EventArgs e)
38. {
39. string username = this.tb_User.Text.Trim();
40. string userpwd = this.tb_Pwd.Text.Trim();
41. string strCon = "Data Source=(local);Database=wapDB;Uid=sa;Pwd=zxkj";
42. string strSql = "select * from userinfo where user_name='"+username+"' and user_pwd='"+userpwd+"'";
43. SqlConnection conn = new SqlConnection(strCon);
44. conn.Open();
45. SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
46. DataSet ds = new DataSet();
47. da.Fill(ds);
48. conn.Close();
49.
50. int rowCount = ds.Tables[0].Rows.Count;
51.
52. if (rowCount > 0)
53. {
54. Session["username"] = ds.Tables[0].Rows[0]["user_name"].ToString().Trim();
55. Response.Redirect("index.aspx");
56. }
57. else
58. {
59. this.lbl_out.Text = "用户名密码错误,请重新登录!
";
60. this.lbl_out.Visible = true;
61. }
62. }
63. }
64.}
index.aspx 前台代码具体如下:
1.<%@ Page Language="C#" AutoEventWireup="true" Inherits="testWap.index" Codebehind="index.aspx.cs" %>
2.<%@ Register TagPrefix="mobile" Namespace="System.Web.UI.MobileControls" Assembly="System.Web.Mobile" %>
3.
4.
//www.w3.org/1999/xhtml" >
5.
6.
7.Form id="Form1" runat="server">
--表单-->
8.Label ID="lbl_uname" Runat="server">
Label>
9.Label ID="wt" Runat="server" Font-Size="Large" ForeColor="Red">文章列表
Label>
10.ObjectList ID="ObjectList1" Runat="server">
--ObjectList控件-->
11.
12.
13.
14.Link Runat="server" Text='<%# ((ObjectListItem)Container)["doc_title"] %>' NavigateUrl='<%# "view.aspx?
id="+((ObjectListItem)Container)["doc_id"]%>' ID="Title" NAME="Title" Wrapping="Wrap">
15.
Link>
16.
17.
18.
19.
ObjectList>
20.
21.Label id="lbl_page" runat="server" Visible="False">1
Label>
--页码:
lbl_page-->
22.Label id="lbl_pagecount" runat="server" Visible="False">1
Label>
--总页数:
lbl_pagecount-->
23.Link ID="lnk_top" Runat="server" BreakAfter="False">首页 |
Link>Link id="lnk_pre" runat="server"> 上一页
Link>
24.Link id="lnk_end" runat="server" Visible="False" BreakAfter="false">尾页 |
Link>Link id="lnk_next" runat="server"> 下一页
Link>
25.
26.Label id="lbl_fabu" Runat="server">发布文章:
Label>
27.Label ID="lbl_error" Runat="server" Visible="false" ForeColor="Red">
Label>
28.TextBox ID="tb_title" Runat="server">
TextBox>
29.TextBox ID="tb_content" Runat="server">
TextBox>
30.Command ID="Button2" Runat="server" OnClick="Button2_OnClick" BreakAfter="false">发表
Command>Command ID="Button1" Runat="server" OnClick="Button1_OnClick">退出
Command>
31.
Form>
32.
33.
34.
index.aspx.cs 后台代码具体如下:
1.using System;
2.using System.Collections;
3.using System.ComponentModel;
4.using System.Data;
5.using System.Drawing;
6.using System.Web;
7.using System.Web.Mobile;
8.using System.Web.SessionState;
9.using System.Web.UI;
10.using System.Web.UI.MobileControls;
11.using System.Web.UI.WebControls;
12.using System.Web.UI.HtmlControls;
13.using System.Data.SqlClient;
14.
15.namespace testWap
16.{
17. public partial class index :
System.Web.UI.MobileControls.MobilePage
18. {
19. protected void Page_Load(object sender, EventArgs e)
20. {
21. if (Session["username"] == null)
22. {
23. Session["loginOutInfo"] = "登录时间到,请重新登录!
";
24. Response.Redirect("login.aspx");
25. }
26. this.lbl_uname.Text = "欢迎您:
"+(string)Session["username"];
27. if (Session["ok"] !
= null)
28. {
29. this.lbl_error.Text = "发表成功!
";
30. this.lbl_error.Visible = true;
31. Session["ok"] = null;
32. }
33. if (!
IsPostBack)
34. {
35. Bind();
36. }
37. }
38.
39. private void Bind()
40. {
41. string rPage = Request.QueryString["Page"];
42. int page = 1;
43. if (rPage !
= null)
44. {
45. try
46. {
47. page = int.Parse(rPage);
48. }
49. catch
50. {
51. page = 1;
52. }
53. }
54. Session["page"] = page;
55. PagedDataSource ps = new PagedDataSource();
56. string strCon = "Data Source=(local);Database=wapDB;Uid=sa;Pwd=zxkj";
57. string strSql = "select * from document order by doc_id desc";
58. SqlConnection conn = new SqlConnection(strCon);
59. conn.Open();
60. SqlDataAdapter da = new SqlDataAdapter(strSql, conn);
61. DataSet ds = new DataSet();
62. da.Fill(ds);
63. conn.Close();
64. ps.DataSource = ds.Tables[0].DefaultView;
65. ps.AllowPaging = true;
66. ps.PageSize = 5;
67. ps.CurrentPageIndex = page - 1;
68. this.lnk_top.Visible = true;
69. this.lnk_pre.Visible = true;
70. this.lnk_next.Visible = true;
71.