其实这篇文章本不想写的,但是考虑到这件事也折腾了我大半天的,唉...记下来也给自己一个总结吧.
在用VS.NET做移动WEB开发时,很明显有一个控件是非常有用但是VS.NET却没有提供的,那就是TextArea,多行输入.
我Google了一下,发现有一篇文章介绍如何自定义这个控件,
原文在这里. 另外,在asp.net网站也有一个现成的控件可以下载,
参考这里.
大家可以直接去看我上面提供的两个链接,也可以接着往下看,我会先简要地介绍一下代码开发,然后重点是总结在配置方面的问题.而这一点,上面老外的文章中却言之甚少.
开发一个自定义控件,要自己实现两个类,一是派生于某个控件的你想要的控件类,二是负责将这个控件Render出来的适配器类(Adapter).
首先,我们实现一个叫MultiLineTextBox类,派生于TextBox类,比较简单,就是多了两个属性Cols和Rows.代码如下:
publicclassMultiLineTextBox:System.Web.UI.MobileControls.TextBox
{
privateint_cols=0;
publicintCols
{
get{returnthis._cols;}
set{this._cols=value;}
}
privateint_rows=0;
publicintRows
{
get{returnthis._rows;}
set{this._rows=value;}
}
}
当然你也可以象老外文章那样,直接把两个属性值放在ViewState中,如果你不打算在你的程序中禁用ViewState的话,这应该是一个更好的办法.
第二步,实现一个派生于ControlAdapter的MultiLineTextBoxAdapter类,重载一个属性和一个方法即可.代码如下:
publicclassHTMLMultiLineTextBoxAdapter:System.Web.UI.MobileControls.Adapters.ControlAdapter
{
protectednewMultiLineTextBoxControl
{
get{return(MultiLineTextBox)base.Control;}
}
publicoverridevoidRender(HtmlTextWriterwriter)
{
writer.WriteBeginTag("textarea");
StringrenderName;
if(Device.RequiresAttributeColonSubstitution)
{
renderName=Control.UniqueID.Replace(':',',');
}
else
{
renderName=Control.UniqueID;
}
writer.WriteAttribute("name",renderName);
writer.WriteAttribute("cols",Control.Cols.ToString());
writer.WriteAttribute("rows",Control.Rows.ToString());
writer.Write(">");
writer.Write(Control.Text);
writer.WriteEndTag("textarea");
}
}
属性Control的重载说明我要管理的类叫MultiLineTextBox.而重载的Render方法则具体了如何在页面中去表现这个控件,就是输出一个textarea标签.
第三步,修改web.config,增加对设备的支持,我就是在这一步被卡住了...先提交吧,下一篇再讨论.
分享到:
相关推荐
Flex是一款强大的RIA(Rich Internet Application)开发工具,由Adobe公司维护,广泛应用于构建高性能、交互丰富的Web应用。本文将重点讨论在Flex 3及Flex 4版本中如何实现`textarea`控件对HTML文本的支持。 ### 一...
在使用HTML开发商业网站的过程中,表单控件是不可或缺的一部分,它们用于收集用户输入的数据。在众多的表单元素中,`<textarea>` 控件扮演着重要的角色,它允许用户输入多行文本,例如用于评论、留言或者填写长篇...
它们分为两类:一类是通用的HTML控件,如HtmlButton、HtmlImage和HtmlTextArea,它们继承自System.Web.UI.Control,并且拥有共同的属性,如Disabled、Style、TagName和Visible。另一类是特定类型的HTML控件,如...
在前端开发中,textarea控件是非常常用的表单控件之一,但是在某些情况下,我们可能需要让textarea控件的滚动条滚动到最下方,以下是实现此功能的相关知识点。 一、使用scrollTop属性 在HTML中,textarea控件的...
ASP.NET Web文本编辑器控件是开发Web应用时不可或缺的一部分,尤其在构建内容管理系统或论坛等需要用户输入丰富格式文本的场景中。CKEditor是一款功能强大的Web文本编辑器,它提供了丰富的文本编辑功能,如文本格式...
"Draw2D模拟SWT控件之TextField、TextArea"这个主题聚焦于使用Draw2D库来模仿SWT(Standard Widget Toolkit)中的两种基本输入控件:TextField和TextArea。SWT是Eclipse基金会的一个开源项目,用于构建原生外观的...
在使用Flex进行Web应用开发时,有时会遇到一个让人头疼的问题:在非主应用程序环境下(例如嵌入到HTML页面中的SWF文件),textarea和input控件无法正常输入中文字符。这不仅影响用户体验,还可能导致功能上的缺失。...
在HTML中,Textarea是一种允许用户输入多行文本的表单控件,其换行处理方式对于用户体验和数据存储至关重要。然而,在这段提供的代码片段中,讨论的是Java中的TextArea组件,而非HTML中的Textarea元素,这表明在不同...
在IT行业中,文本输入控件是用户界面设计中不可或缺的一部分,它们允许用户输入和编辑文本。在本文中,我们将深入探讨“TextArea”和“TextField”这两个在ActionScript 3(AS3)中用于处理文本输入的组件,以及如何...
总的来说,"textarea 输入框自适应高度"是一个提升用户体验的重要技巧,涉及到前端开发中的DOM操作、事件监听和动态样式修改。通过实践和理解这样的技术,开发者可以构建出更智能、更易用的web应用。
在VC++开发中,将内容写入到TextArea控件通常是为了解决用户界面与程序数据交互的问题。在传统的MFC框架下,TextArea通常指的是编辑框(CEdit)或多行编辑框(CMultiLine),而这里提及的是非COM方式,意味着我们将...
"Growy"是一个JavaScript开发的Web组件,专门设计用于提供类似于Textarea的输入控件,但具备一项独特的功能:它会在用户输入内容时自动扩展,以适应不断增加的文字量。这种智能扩展的能力为用户提供了无缝的输入体验...
在Web应用测试中,Web控件测试是至关重要的环节,它涉及到用户界面的交互性和数据的正确性。以下是对Web控件测试的详细总结,旨在提升测试人员的测试能力。 首先,进行界面检查。测试开始时,应先确认页面的基本...
在网页开发过程中,`textarea`是一个非常重要的HTML元素,主要用于接收多行文本输入。在本文中,我们将详细介绍如何使`textarea`随内容的高度固定而自动增宽,以及宽度固定时如何自动增高,并对`wrap`属性的几种设置...
`textarea`是HTML中用于创建多行文本输入控件的一个关键元素,常用于收集用户的大段文本输入,如留言、评论或表单填写中的详细说明部分。与`input`类型相比,`textarea`提供了更大的文本编辑区域,支持多行输入,...
在Java Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术,它结合了HTML、Java代码和脚本元素。当用户在网页上填写表单,特别是使用TextArea输入多行文本时,开发者需要从服务器端获取这些数据进行...
在Web开发中,了解和熟练使用这些控件是至关重要的。本主题将详细探讨一些常用的HTML控件,以及与.NET、C#框架相关的自定义控件。 1. HTML基础控件:HTML提供了多种内置控件,如`<input>`(文本输入框、复选框、...
在网页开发中,`Textarea` 是一种常用的表单元素,用于收集用户输入的多行文本。标题“Textarea在光标停留处插入文字”涉及到的是如何在`Textarea`中实现文字的动态插入,使得新添加的文字能精确地出现在用户当前...