一个不简单的问题:如何取得label显示文字的长度。

gufengsheng 2005-04-22 12:36:10
除了考虑中英文的双字节与单字节问题以外,我在限制标题长度的时候发现以下问题,如果我在TextBox里面输入了Html代码,而通过Label来显示,比如:
<font color='#ff0000'>标题</font>
则Label只会显示两个汉字,而实际他已经不止两个汉字的长度了。可是如果我用Length等什么函数的话,截取出来的字符肯定是显示出来很变态,因为有一部分html代码已经被截取了,再说html代码又有那么多种。请问高手怎么解决。
...全文
516 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
gufengsheng 2005-04-30
  • 打赏
  • 举报
回复
还是没解决,不过放弃了
hchxxzx 2005-04-22
  • 打赏
  • 举报
回复
提示"有潜在的危险",你必须在web.config里面进行设置,让NET不检测语法.如下:


<!--设置页面不检测HTML语法-->
<pages enableSessionState = "true" validateRequest="false"/>

</system.web>
chensuijie 2005-04-22
  • 打赏
  • 举报
回复
你可以用Request.Form("Label")获取它的非包含html代码的字符串~
然后再计算长度!如果提示从“客户端(TextBox1="<font color='#ff0000……")中检测到有潜在的危险Request.Form值。”这个错误~就再页面第一行的<%@ Page language="c#"...... %>这里面加上~
validateRequest=false 即~<%@ Page language="c#" validateRequest=false ...... %>
hchxxzx 2005-04-22
  • 打赏
  • 举报
回复
这种问题较难解决.提供一个解决思路:
用一个正则表达式,去掉文本里面的所有HTML语句,求取出有用的文本,之后计算文本,取出需要的长度,再拿到原文本串里面进行替换.
不过,一般来讲,我们要限制显示长度的地方,一般是标题之类,而此类东西尽量不要让用户输入HTML语句,只有在正文内容内才允许.
ghx88 2005-04-22
  • 打赏
  • 举报
回复
我试过在TextBox中输入<font color='#ff0000'>标题</font>后按Button提交会出错!

从客户端(TextBox1="<font color='#ff0000……")中检测到有潜在的危险Request.Form值。
chensuijie 2005-04-22
  • 打赏
  • 举报
回复
这个比较麻烦,你可以把label1里面的内容全部获取下来先,然后用字符串操作,把html标记(<br>)
这些都去掉,剩下的就是你想要的字符串了
gufengsheng 2005-04-22
  • 打赏
  • 举报
回复
继续顶
baby2046 2005-04-22
  • 打赏
  • 举报
回复
这是一个很经典的web常见问题了,当然了,我们不能在提交的时候使用前台script来check用户的输入内容,但是如果这种(例如"<script>alert('show me your cardpwd.'); </script>")含有特殊tag的字符串被原原本本的再匹配到asp中的话,肯定问题就大了。
所以,当类似的内容提交了以后,需要对其进行一次转换,例如转换为<script>alert(''show me your cardpwd'); </script>,这样当再次在画面表示的时候,就不会有问题了阿。
希望可以有所帮助:)
hchxxzx 2005-04-22
  • 打赏
  • 举报
回复
有没有好一点的方法,比如可以不把Html语法算在标题的长度之内。
----------------
没有其他方法
gufengsheng 2005-04-22
  • 打赏
  • 举报
回复
自己UP一下
gufengsheng 2005-04-22
  • 打赏
  • 举报
回复
注意要先在Web.config中设置:
<pages enableSessionState = "true" validateRequest="false"/>
否则不能提交包含html语法的语句。
gufengsheng 2005-04-22
  • 打赏
  • 举报
回复
很感谢以上各位的意见,不过用了Sqlprameter的话就不会有什么潜在的危险了。
有没有好一点的方法,比如可以不把Html语法算在标题的长度之内。
因为客户有时候需要突出显示新闻标题,比如:粗体,红色字体等。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧