[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] 下一页 |