快意人生

用.Net开发Wap页面是很傻瓜的,几乎不用什么编程语言就可以生成一个漂亮的页面。
可气的是,生成的WML代码往往不是我们想要的,比如要生成一个Input框,.Net会生成
这样的代码<input name="mcsviauup0" format="*N" />,name属性是随机生成的,type属性
丢失了。type属性的丢失会造成部分手机不能正常显示,可以通过强制WML输出来解决
在Web.config中加入以下代码即可

<browserCaps>
 
<result type="System.Web.Mobile.MobileCapabilities, System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
 
<use var="HTTP_USER_AGENT"/>
 preferredRenderingType 
= "wml11"
 inputType
="keyboard"
 supportsInputMode 
= "false"
 
</browserCaps>  
但是如果我们想要得到Input的name该怎么办呢????

解决方法转自WapDotNet
使用用户控件
Step1:新建用户控件WmlOut,并输入如下代码
public abstract class WmlOut :System.Web.UI.UserControl
    
{
        
//public string Text = "testtesttest";
        public string wmlText;
        
public string WmlText
        
{
            
get
            
{
                
return wmlText;
            }

            
set
            
{
                wmlText 
= value;
            }

        }

        
protected override void Render(HtmlTextWriter output)
        
{
            output.Write(wmlText);
        }

    }


Step2:建一页面引用该控件,并在.CS中加入如下代码
protected WmlOut WmlOut1;
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
// 在此处放置用户代码以初始化页面
                        
            
if(!Page.IsPostBack)
            
{
                
                WmlOut1.WmlText 
= "<input name=\"account\" type=\"text\" format=\"*N\"/>";
            
            }

        }

即可看到输出了一个<input name=\"account\" type=\"text\" format=\"*N\"/>的控件
Finish:OK,到此就结束了。
 Tips://注意"之前应加\否则会出错。
posted on 2006-03-05 10:38  快意人生  阅读(1079)  评论(0)    收藏  举报