View-ForumsGroupView.ascx 读解

为了修改首页的框架,一路跟踪到了View-ForumsGroupView.ascx这个文件,其实他就是一个页面的模版,微软在这里并没有弄了太多花絮,所以阅读起来很方便。

<%@ Control Language="C#" %> 
<%@ Register TagPrefix="Forums" Namespace="AspNetForums.Controls" Assembly="AspNetForums.Controls" %> 
<%@ Import Namespace="AspNetForums" %> 
<%@ Import Namespace="AspNetForums.Controls" %> 
<%@ Import Namespace="AspNetForums.Components" %>

导入了一些名称空间,并且声明了一个控件。

<Forums:Ads Zone="Inline" runat="server" />

注释上显示是广告,我个人理解为登入框上面的banner。

<%    if ( Users.GetUser().IsAnonymous ) { %> 
<table width="100%" cellspacing="0" cellpadding="5" border="0"> 
    <tr> 
        <td> 
            <!-- ForumGroupView.Header.End --> 
            <Forums:Login SkinFilename="Skin-LoginSmall.ascx" runat="server" ID="Login1" /> 
            <!-- ForumGroupView.MainCentent.Start --> 
        </td> 
    </tr> 
</table> 
<%    }    %>

匿名用户显示的表格,感觉和动网的有些类似。

<table width="100%" cellpadding="5" cellspacing="0"> 
    <tr> 
        <td valign="bottom" colspan="2"> 
            <table width="100%" cellpadding="0" cellspacing="0"> 
                <tr> 
                    <td class="txt4" align="left" nowrap> 
                        <Forums:DisplayUserWelcome runat="server" /> 
                    </td> 
                    <td class="txt4" align="right" valign="bottom" nowrap> 
                        <%    if ( !Users.GetUser().IsAnonymous ) { %> 
                        <a class="lnk3" href="<%=Globals.GetSiteUrls().MyFavorites%>"> 
                            <%=ResourceManager.GetString("MyFavorites_Description")%> 
                        </a> 
                        <br /> 
                        <!--<Forums:MarkAllRead runat="server" ID="Markallread1"/>--> 
                        <% } %> 
                        <Forums:ForumAnchor class="lnk3" AnchorType="PostsActive" runat="server" /><br /> 
                        <Forums:ForumAnchor class="lnk3" AnchorType="PostsUnanswered" runat="server" /><br /> 
                    </td> 
                </tr> 
                <tr> 
                    <td align="left"> 
                        <Forums:BreadCrumb ShowHome="true" runat="server" ID="Breadcrumb1" /> 
                    </td> 
                    <td align="right" class="txt4"> 
                        <Forums:SearchRedirect ID="SearchRedirect" runat="server" /> 
                    </td> 
                </tr> 
            </table> 
        </td> 
    </tr> 
</table>

这个就是登入以后所显示的表格。

下面就是论坛组的显示了,我们公司就是要我修改这里,所以准备一点一点分析。

<asp:Repeater EnableViewState="false" runat="server" id="forumGroupRepeater">

定义了一个Repeater控件,用来显示整个论坛组框架。

<HeaderTemplate> 
                    <!-- ********* Repeater.Header.Start ************* //--> 
                    <table width="100%" class="tableBorder" cellpadding="4" cellspacing="1"> 
                        <tr> 
                            <td colspan="2" class="column" align="center" width="*"><% = ResourceManager.GetString("ForumGroupView_Inline1") %></td> 
                            <td class="column" align="center" width="177" nowrap><%= ResourceManager.GetString("ForumGroupView_Inline4") %></td> 
                            <td class="column" align="center" width="65" nowrap><%= ResourceManager.GetString("ForumGroupView_Inline2") %></td> 
                            <td class="column" align="center" width="65" nowrap><%= ResourceManager.GetString("ForumGroupView_Inline3") %></td> 
                        </tr> 
                    </table> 
                    <!-- ********* Repeater.HeaderTemplate.End ************* //--> 
                </HeaderTemplate>

定义了头模板,ResourceManager.GetString(),让我看了很长时间,个人以为是整理了一下字符串,然后又从配置里面把数据读出,从Language目录里的Resources.xml读出数据。

<td class="fh1" colspan="5" valign="bottom"> 
   <asp:ImageButton ID="ExpandCollapse" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "ForumGroupID") %>' ImageUrl='<%# Formatter.ExplandCollapseIcon( (ForumGroup) Container.DataItem ) %>' ToolTip='<%# ResourceManager.GetString("ForumGroupView_ExpandCollapse")%>' Runat="server"/> &nbsp;<a href="<%# Globals.GetSiteUrls().ForumGroup ( (int) DataBinder.Eval(Container.DataItem, "ForumGroupID")) %>"><%# DataBinder.Eval(Container.DataItem, "Name") %></a> 
 </td>

这个表格显示了一个图片和论坛组的名字。

<Forums:ForumRepeater ForumGroupID='<%# DataBinder.Eval(Container.DataItem, "ForumGroupID") %>' HideForums='<%# DataBinder.Eval(Container.DataItem, "HideForums") %>' runat="server">

这是一个自定义的Repeater控件,具体代码还没研究过。

<td class="f1" width="20"> 
<%# Formatter.StatusIcon( (Forum)Container.DataItem ) %> 
</td>

这个是显示版面是否有信息的那个图片。

<Forums:ForumLogo runat="server" Forum='<%# (Forum) Container.DataItem %>' />

这个是版面的logo,如果有就显示,没有就不显示,都在ForumsRepeater控件里都有了。

<b><a href="<%# Globals.GetSiteUrls().Forum( ((Forum) Container.DataItem).ForumID ) %>"> 
                                                    <%# DataBinder.Eval(Container.DataItem, "Name") %> 
                                                </a></b> 
                                            <%# Formatter.FormatUsersViewingForum( (Forum) Container.DataItem ) %> 
                                            <br />

这个很容易理解,就是版面名字的显示,<%# Formatter.FormatUsersViewingForum( (Forum) Container.DataItem ) %> 是显示版面现在的在线人数,很多余的东西,缓存太久了,根本不能及时显示。

<span class="txt5"></span><%# DataBinder.Eval(Container.DataItem, "Description") %><%# Formatter.FormatSubForum( (Forum) Container.DataItem ) %></span> 
<br /> 
<forums:ForumModerators runat="server" ForumID='<%# ((Forum)Container.DataItem).ForumID %>'/>

版面的简介和版主显示

<td class="fh3" align="center" width="175"> 
    <%# Formatter.FormatLastPost( (Forum) Container.DataItem, (bool) true ) %> 
</td> 
<td class="fh3" align="center" width="64"> 
    <%# Formatter.FormatNumber( ((Forum) Container.DataItem).TotalThreads ) %> 
</td> 
<td class="fh3" align="center" width="65"> 
    <%# Formatter.FormatNumber( ((Forum) Container.DataItem).TotalPosts ) %> 
</td>

这三个分别显示:最后帖子,主题数,帖子数的。

好了,后面都是一些闭合语句了。

分析完毕,现在修改起来也简单了,以后研究的时候会继续贴上来的,嘿嘿

版面的简介和版主显示 这三个分别显示:最后帖子,主题数,帖子数的。好了,后面都是一些闭合语句了。分析完毕,现在修改起来也简单了,以后研究的时候会继续贴上来的,嘿嘿

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据钻研

前端面试那些坑

HTML Doctype作用?严格模式与混杂模式如何区分?它们有何意义? HTML5 为什么只需要写 ? 行内元素有哪些?块级元素有哪些? 空(void)元素有...

35960
来自专栏牛客网

百度前端实习岗

12900
来自专栏我杨某人的青春满是悔恨

开源项目——『看知乎』iOS 版

前段时间无意中发现了看知乎,一个知乎答案和用户的精选站。网站开发者是知乎用户苏莉安,他写了个爬虫从知乎抓取数据,而且还提供了 API 文档。我大致看了下文档,感...

33650
来自专栏十月梦想

一天带你入门到放弃vue.js(一)

每个新的框架入手都会进行一些列的扯犊子!这里不多说那么多!简简单单说一下vue吧!

48730
来自专栏Nian糕的私人厨房

CSS 字体图标引用

在自己的项目中,我们或多或少的需要插入一些 icon,缺少 UI 设计天赋的我只能去搜寻现有的 icon 了,在这里推荐大家去 Iconfont 阿里巴巴矢量图...

12730
来自专栏nice_每一天

一天带你入门到放弃vue.js(一)

每个新的框架入手都会进行一些列的扯犊子!这里不多说那么多!简简单单说一下vue吧!

19620
来自专栏IT平头哥联盟

曾经面试踩过的坑,都在这里了~

  前段时间面试(包括阿里巴巴的电话面试),遇到过一些面试题,且面试中出现机率较高的提问/笔试,有些答的不是很好挂掉了,今天终于有时间整理出来分享给大家,希望对...

28500
来自专栏九彩拼盘的叨叨叨

Web 前端菜鸟源码阅读列表

阅读优秀源码的好处有好多,如能学习一些技术知识,编码技巧,组织代码的方式,提高理解能力等等。

9610
来自专栏前端侠2.0

记几处原生JS的开发 原

年后换工作,一直不稳定,我就没有正式写过程序,博客也荒芜了。最近才正式接手工作,遇到很多奇葩的领导,总有很多奇葩的想法和理念。比如不让用jquery,不过要求兼...

10720
来自专栏贺嘉的专栏

教你写一个云上Hello world小程序

小程序上线一月有余,有不少创业团队如朝夕日历、小睡眠、小密圈等工具性的应用享受了这一波产品红利,收获了数十万新用户。笔者近期接触了不少从事后端开发的Java、C...

2.7K00

扫码关注云+社区

领取腾讯云代金券