专栏首页NetCoreView-ForumsGroupView.ascx 读解

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 条评论
登录 后参与评论

相关文章

  • [收藏]几个常用的用正则表达式验证字符串的函数

    <!-- name,phone,age,money checked--> <script language=javascript runat=server> ...

    脑洞的蜂蜜
  • [原创]Fluent NHibernate之旅(三)-- 继承

    经过了“开篇”和“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定的了解了,FluentNHibernate实际就是对 NHibern...

    脑洞的蜂蜜
  • 微信快速开发框架(七)--发送客服信息,版本更新至V2.2 代码已更新至github

    在V2版本发布的博文中,已经介绍了大多数Api的用法,同时也收到了很多意见,其中发布了几个修正版本,修改了几个bug,在此感谢大家的使用,有了大家的支持,相信快...

    脑洞的蜂蜜
  • AFNetworking+Python+Flask+pyOpenSSL构建iOS HTTPS客户端&服务器端

    最后我现有的感觉是, 在HTTP服务器上放一个证书, 在原本的HTTP访问之前客户端先检查证书是否正确

    周希
  • OkHttp基础概念解释

    最近在整理Android常用第三方框架相关的东西,说道Android的框架,无外乎就是Android开发中常见的网络、图片缓存、数据交互、优化、页面等框架,其中...

    xiangzhihong
  • [PHP] 简单工厂模式-创建型设计模式

    简单的创建对象型工厂模式,目的是当有很多的初始化动作的时候,可以直接在工厂里搞,不用每次new都写一遍

    陶士涵
  • 部署项目常用套路

    批量创建文件夹 sudo mkdir -p /data/{backup,code,logs,server,soft,virtual} backup 存放历史版本...

    zhaoolee
  • kafka知识点--offset管理和Consumer Rebalance

    consumer group是kafka提供的可扩展且具有容错性的消费者机制。组内可以有多个消费者或消费者实例(consumer instance),它们共享一...

    哲洛不闹
  • React源码解析之FunctionComponent(中)

    作用: 当子节点不为 null,则复用子节点并删除其兄弟节点; 当子节点为 null,则创建新的 fiber 节点

    进击的小进进
  • Redis的数据安全

    Redis是一种远程内存数据库,主要用C语言编写完成,它也是基于键值对(key-value)的NoSQL数据库,提供了由String(字符串)、hash(哈希)...

    MySQL数据库技术栈

扫码关注云+社区

领取腾讯云代金券