易截截图软件、单文件、免安装、纯绿色、仅160KB

ASP.NET中用户输入文本的HTML解析办法

 网页中用TextBox让用户输入文本,然后存入数据库,再从数据库中读出显示在页面上。常常这样做会遇到不少问题,因为TextBox实际上是一个Windows组件,和网页显示标记如:<p>,<td>,<div>等,对字符的解析方法是不同的。比如前者的换行标记为“\r\n”,而后者为“<br>”。这就带来一个转换的问题。
    在做转换之前,先来考虑几个问题:
1、 TextBox用“\r\n”来标记换行而网页中以“<br>”标记
2、 网页中连续的空格当做一个空格处理,比如“a b    c”将会显示“a b c”
3、 用户输入特殊字符比如:“<”,“&”,“&nbsp;”,“&lt;”,这些都是网页中有特殊意义的字符,会被解析,而用户输入的目的当然是不希望被解析。
现在来解决这几个问题,有一种解决办法是在显示的时候仍然用TextBox去显示,这样就不用做任何转换,只要把TextBox.ReadOnly设为true,这样在一定程度上能满足要求。但是往往为了网页的美观,这样做是不可取的。比较好的办法是去解析用户输入的字符串,可以做这样的转换:
第一步:
“<”      à“&lt;”
“&”      à“&amp;”
“&nbsp;”à“&amp;nbsp;”
……(此处的省略号后文有说明)
第二步:
“ ”      à“&nbsp;”
“\r\n”  à“<br>”
这里必须分两步转换,因为如果你先做第二步转换的话混把用户输入的特殊字符串和由转换而的的特殊字符串混淆,比如:
用户输入:a b   c&nbsp;d
第二步转换:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d
第一步转换:a&amp;nbsp;b&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;d
可以看到,经过第一次转换后已经无法分辨用户输入的“&nbsp;”和转换而来的“&nbsp;”,在做第二次转换的时候就会统一处理就会出错。结果显示:a&nbsp;b&nbsp;&nbsp;&nbsp;c&nbsp;d
如果严格按照第一步,第二步的转换


相关文档:

有关ASP.NET中的UpdateProgress控件的使用

 前台代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UpdateProgress.aspx.cs" Inherits="UpdateProgress" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    Namespace="System.Web.UI" Ta ......

asp.net 调用外部程序


Process p = new Process();
p.StartInfo.FileName = "cmd.exe"; //設定程序名
p.StartInfo.Arguments = "/c " command; //設定程式執行參數
p.StartInfo.UseShellExecute = false; //關閉Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向標準 ......

开发自定义控件 (asp.net C#)

 学习自定义控件的开发不仅可以使你开发出更灵活的系统更重要的是它可以使你加深对已有服务器控件的理解,得以更灵活的应用。
较之于asp,asp.net提供了更强大的功能,我比较喜欢它的代码分离技术和对诸如C#、VB.Net等强类型语言的使用,这是从开发者的角度来看
的,从用户的角度来看,会觉得它速度更快,运行更稳定 ......

asp.net计划任务管理程序实现,多线程任务加载

 b/s模式下用程序实现计划任务,一直是个不太好解决和管理的问题,当然可以采用ajax 计时器的方法模拟form端的timer事件。asp.net下实现可以将计划任务的方法放在global里,使用一个统一的任务管理类来管理各种任务的执行,做到并行不悖!
下面是我写的一个方法,希望起个抛砖引玉的作用!大家一起学习下:
第一步定 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号