学习dotnetnuke已经有一段时间了,但是从来也没有深入过,我的原则是能够使用就可以了,从来没有一天像今天一样把dnn的代码这样的翻来翻去,有一段时间没有看dnn的代码了,以前看过的都已经忘了,现在看了之后发现dnn的代码中还有一些不令人满意的地方,可读性差了一些,不是很好读(一般便秘的人,对厕所的要求都是比较高的)
以前看developer guide的时候,对dnn的结构稍了解一些,比如设计模式,但是没有深入,对设计模式不了解,可能正因为如此才走了弯路
说说我的问题
外国人的名字中间喜欢分开,他们字与字之间的分隔就使用空格,很多数据库方面的书也说要把姓和名分开作为两个字段,但是这种说法可能是外国人的话搬过来的,实际上姓名中间留空格并不符合我们的习惯,在网上论坛,社区等很多地方为了和国际接轨很多都是用姓和名分开。但是在一切情况下并不好,比如我最近作的一件事:建设一个dotnetnuke的网站作为网上办公用,但是网站并不针对个人,所以有了英文名的amend lee,也只好靠边站了,我们想使用的用户名是食品科学与工程系 可是如何作姓和名的拆分呢?姓食品科学 名与工程系吗 还是姓食品科学名工程系?似乎都不合适。马上就要发布网站了,怎么解决这个问题呀,领导可不管你什么国外习惯,老人家了,说什么还要理由吗,不合适就使不合适,正式场合怎么可以把名字搞错了呢?曾经有过毛/泽/东/思/想/概/论/教研室的老师因为我在程序中将其写作毛/泽/东/思/想/教研室,和我纠缠不清了好些日子,可不要招惹那些学究。
可是怎么改呀??
打开数据库,看看关于users表,里面没有fullname字段,计算列,没错的,看看存储过程,GetUser,这个不错

ALTER  procedure dbo.GetUser

@PortalId int,
@UserId int

as

select U.UserId,
       UP.PortalId,
       U.Username,
       'FullName' = U.FirstName + ' ' + U.LastName,
       U.FirstName,
       U.LastName,
       U.IsSuperUser
from Users U
left outer join UserPortals UP On U.UserId = UP.UserId
where  U.UserId = @UserId
and    (UP.PortalId = @PortalId or U.IsSuperUser = 1)

就是这里将+' ' 删除,编译,浏览,咦,还是不行,再看看GetUserByUsername

ALTER  procedure dbo.GetUserByUsername

@PortalId int,
@Username nvarchar(100)

as
 
select U.UserId,
       UP.PortalID,
       U.Username,
       'FullName' = U.FirstName + ' ' + U.LastName,
       U.FirstName,
       U.LastName,
       U.IsSuperUser
from Users U
left outer join UserPortals UP On U.UserId = UP.UserId
where  Username = @Username
and    (UP.PortalId = @PortalId or U.IsSuperUser = 1 or @PortalId is null)

糟糕,看来从sql中解决问题很难,要修改多少代码呀,想一想如果从这一端不行就到问题的另一端,等到显示的的时候把空格删掉!!我真佩服我自己,好聪明呀,可是修改什么地方呢?

info,userinfo,呵呵,找到了,修改userinfo.vb

        Public Property FullName()Property FullName() As String
            Get
                If _FullName = "" Then
                    'Build from component names
                    '修改姓名中间的空格
                    _FullName = FirstName & " " & LastName
                    '_FullName = FirstName & LastName
                End If
                ' _FullName.Replace(" ", "")
                Return _FullName
            End Get
            Set(ByVal Value As String)
                _FullName = Value '.Replace(" ", "")
            End Set
        End Property

这不就是构造用户信息的地方吗,如果全名为空则姓+空格+名,把空格去掉直接把姓名连在一起,去除空格我还曾经想到AT,使用_FullName=Value.Remove(AT(_FullName," "),1) ,此路不通!
debug,在这里明明_FullName已经是“大厨师”,为什么网站上显示还是“大 厨师”,编译,缓存,不该想的我都想了,还是不行,只能跟踪一段看看。
一遍一遍的修改,调试让我这是麻烦的不行,这两天及其不听话,慢腾腾的,过两天割了你
As a Dummy the better way to be smart is asking others,问别人,省心又省事,
问师域,说可能要该数据库,太复杂,最好少改点,否则下次升级该怎么办
再想想看看,好像还不够靠前,继续往前,看看什么空间显示全名,Got it,Admin\users,看看Users.vb那么长,我可不看,本人没学过basic,随便看看还行,这么多可看不了
看看皮肤,看了看皮肤中定义的皮肤的定义,里面不涉及全名的问题,看看skins控件,

                        Dim objUserInfo As UserInfo = UserController.GetCurrentUserInfo

                        If objUserInfo.UserID <> -1 Then
                            hypRegister.Text = objUserInfo.Profile.FullName
                            hypRegister.ToolTip = Services.Localization.Localization.GetString("ToolTip", Services.Localization.Localization.GetResourceFile(Me, MyFileName))

                            If PortalSettings.UserTabId <> -1 Then
                                hypRegister.NavigateUrl = NavigateURL(PortalSettings.UserTabId)
                            Else
                                hypRegister.NavigateUrl = NavigateURL("Register")
                            End If
                        End If

在这里,Orofile.FullName,右键看看定义,转到了userProfile.vb
去掉空格之后的代码

        Public ReadOnly Property FullName()Property FullName() As String
            Get
                Return _FirstName & _LastName 
                   'Return _FirstName & " " & _LaseName
            End Get
        End Property

搞定去睡觉了,本来想详细的说可是困得不行了,想多些点字可是自己写着都没意思
将原来设置的断点去掉,重新编译
机子真慢,有钱了买条512的内存,升了机子你也不知道,(忘了想要说什么了),真受不来他慢腾的,

为什么不能输 mozedong??为什么是...? 中国人都怎么了,顺便同情一下dudu

转载于:https://www.cnblogs.com/henry_zjk/archive/2005/05/11/152837.html

在dotnetnuke中去掉显示姓名中的空格相关推荐

  1. csgo游戏中怎么显示现实中的时间

    csgo游戏中怎么显示现实中的时间 xbox game bar下载这个应用就好了 这个更好使 提供一个浏览器,这样的话想显示什么都可以了. 按F11全屏

  2. 360中不显示html中图片不显示图片,360浏览器网页不显示图片?如何显示出来

    有很多用户在使用360浏览器的时候碰到了无法显示图片的问题,那么要如何解决这个问题呢,今天就让我们一起来看看,如何使用浏览器正确的打开浏览器使用,帮助用户找出无法显示图片的原因和解决的办法,今天小编就 ...

  3. Android中去掉显示标题的方法

    方式一: 在activity中设置主题 <style name="AppTheme" parent="AppBaseTheme"><!-- 取 ...

  4. 隐藏计算机文件夹中,怎样显示电脑中已隐藏的文件夹

    打开 我的电脑! 在最上边点击 工具(T) →文件夹选项 在弹出对话框里点查看! 把高级设置里的:不显示隐藏文件和文件夹 改选为:显示所有文件和文件夹 点应用即可!good `如果是VAST 系统的话 ...

  5. Vue中去掉表单对象上前后空格

    实现基于关键字搜索,发现查询到的结果集跟预期不匹配,开发者工具查看相应的请求,发现在请求参数前面多了一个空格,之后就是去掉空格了,vue中去空格只要在该表单对象 的v-model上加trim属性即可 ...

  6. 固定连接index.php,WP中去掉固定链接中的index.php和category

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 本文是针对使用Windows主机的用户来说的, 如果你使用Windows主题搭建了WordPress程序, 并设置了非默认状态的固定链接形式的话, 那么, ...

  7. allure报告中去掉allure.title中自动拼接的参数

    文章目录 前言 正文 问题描述 解决办法 解决效果 后记 前言 正文 问题描述 allure报告中allure.title 会自动拼接上传的参数,如何参数很长,前端展示的样式会很丑,详情如下: 解决办 ...

  8. 360中不显示html中图片不显示,360安全浏览器浏览网页不显示图片怎么办?解决方法...

    使用360安全浏览器浏览网页时,我们遇到了无法在网页上显示图片的问题.这时候我们该怎么办?我们可以转到360安全浏览器的网页设置来查看是否未显示图片,或者使用360安全浏览器维修医生来修复浏览器,让我 ...

  9. jupter中没有显示conda中的环境

    将conda中的环境添加到jupyter中: python -m ipykernel install --user --name myenv --display-name "Python ( ...

最新文章

  1. R安德森-达令检验( Anderson-Darling Test)
  2. Cortex-A9 UART
  3. hadoop完全分布式集群安装
  4. java后台日期怎么去重,JAVA后台业务实现去重
  5. jvm 06-G1收集器
  6. 通过百度 vs 奇虎,来谈博客搜索
  7. 计算机A级作文,关于被计算机的作文(共一篇)-疾风作文网
  8. DDD战略篇:架构设计的响应力
  9. Linux系统下配置JDK环境变量
  10. Post传值时间特殊字符处理比如 p/p当作参数传递到后台
  11. python去噪函数_Python | 简单的扩音,音频去噪,静音剪切
  12. 【泛融顾问分享】互联网金融未来走向预测
  13. 腾讯优图开源项目TNN总结与实践
  14. 软件测试基础理论学习和小案例(一)
  15. win10打开蓝牙_双系统共用蓝牙键鼠(win10+macOS)
  16. 存储管理——内存扩充技术
  17. 代码编辑软件Sublime Text 4中文版安装使用教程
  18. 云计算助推金融行业信息化发展
  19. 使用电源管理模块有效控制GaN功率放大器的电源开关
  20. android 开放聊天室

热门文章

  1. 数据结构---红黑树的原理
  2. 楷书和草书哪幅更具有艺术性?
  3. 牛市买基金好还是股票好?买基金会翻倍吗?
  4. 磕头如捣的拼音及解释
  5. 未来的经销商还有哪些生意能做?
  6. 女人选择安逸一点还是拼搏一点
  7. 体力劳动和脑力劳动有什么区别?
  8. According to the overall view of the patent
  9. java 注释工具栏_eclipse/intellij idea 查看java源码和注释方法
  10. 思科模拟器划分子网实验报告_模拟多子网群集以设置SQL Server Always On可用性组–实验设置