打印本文 打印本文 关闭窗口 关闭窗口
[Wap]自定义asp.net mobile control
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2813  更新时间:2009/4/23 10:40:30  文章录入:mintao  责任编辑:mintao

[Wap]自定义asp.net mobile control

编写者

日期

关键词

郑昀@ultrapower

2005-7-28

Wap ASP.NET Mobile control device adapter

 

 

Device Adapter概念

按照MSDN《Walkthrough: Adding Support for Devices》的指示:

我们要想自定义MMIT(Microsoft Mobile Internet Toolkit)提供的控件,那么可以改变Adapter在最后关头的渲染工作。

 

 

首先,我们要说明render的概念,最好的动画教程就是http://www.asp.net/mobile/2514A_01A001.swf,它是Mobile Web Application Architecture的flash讲解。

所有的ASP.NET mobile device adapter都是通过text writer做render的。这些text writer均继承自MobileTextWriter。它提供了Write, WriteLine, 以及WriteBeginTag等方法。对于WML来说,这个Text Writer是System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter。

 

 

第一步,下载http://go.microsoft.com/fwlink/?LinkId=6350的Device Adapter Code源代码;

或者直接链接MobileIT.exe

http://www.microsoft.com/downloads/details.aspx?FamilyId=AE597F21-B8E4-416E-A28F-B124F41F9768&displaylang=en

       第二步,编辑其中的WmlTextBoxAdapter.cs文件;

      第三步,通过csc.exe生成出一个新的Adapter DLL;

      第四步,配置web.config;

      第五步,重新编译你的工程。

 

 

      可惜呀,MobileIt.exe下载不了。当然在ASP.NET 2.0中,是很容易地自定义Adapter的。

那么现在ASP.NET 1.1中,我们只好折衷采用下面的办法:

自定义一个Adapter类

在这里我们来定义一个继承自

System.Web.UI.MobileControls.Adapters.WmlListAdapter

的Adapter,来准备改写mobile:list控件的输出方式。

将下面的代码保存为ListAdapter.cs:

ListAdapter.cs

using System;

using System.Collections;

using System.Web.UI.MobileControls.Adapters;

 

 

namespace iUltraMobiles

{

    /// <summary>

    /// ListAdapter 的摘要说明。

    /// 首先利用下面的命令编译出一个ListAdapter.dll:

    /// csc /t:library /r:System.Web.Mobile.dll ListAdapter.cs

    /// 其次,将以下的配置添加入web.config中mobileControls节点下:

    /// <device name="UltraListDeviceAdapters"

    /// inheritsFrom="WmlListAdapter">

    /// <control name="System.Web.UI.MobileControls.Form"

    /// adapter="iUltraMobiles.ListAdapter, iUltraMobiles" />

    /// </device>

/// <see cref="http://www.cnblogs.com/zhengyun_ustc/archive/2005/07/28/customcuildyourmobilecontrol.html"/>
/// <seealso cref="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mwsdk/html/mwlrfdevice.asp"/>

    /// </summary>

    public class ListAdapter :System.Web.UI.MobileControls.Adapters.WmlListAdapter

    {

        public override void Render(

            System.Web.UI.MobileControls.Adapters.WmlMobileTextWriter writer)

        {

            // Add your attributes here.

            writer.WriteBeginTag("img");

            writer.WriteAttribute("src","Images/1.png");

            writer.WriteAttribute("alt", "欢迎您!");

            writer.WriteLine(" />");

 

 

            base.RenderChildren(writer);

 

 

        }

    }

}

 

 

编译ListAdapter

利用下面的命令编译出一个ListAdapter.dll:

[1] [2] [3]  下一页

打印本文 打印本文 关闭窗口 关闭窗口