当前位置:编程学习 > asp >>

实现.net cms系统 第一篇《抛砖引玉-代码对比》

本文代码皆是C#
见识过许多CMS系统,他们功能强大至极,让人佩服。但是,有得必有失,功能强大未必好,毕竟不可全用。
再者:毕竟是他人开发,束缚了自身发展。
我心痒痒,欲编写一个基于.NET平台的CMS.
废话不说了。
 
先谈一下:绑定数据。
绑定数据方法有多种。
①使用服务器控件
说明:拖控件是高手对.net鄙视的最大原因。其弊端多多,会产生很多垃圾代码,对网页布局有很大影响,无法做出精美的页面。
所以,这里就不加说明了。
②直接循环输出html
例:
<div>
        <ul>
            <%                                                                                      
                string strWhere = "";//条件                                                
                int currentPage = 1;//当前页
                if (Request.QueryString["PageNum"] != null)
                {
                    if (v.IsInteger(Request.QueryString["PageNum"].ToString()) == "")//判断是否为数字
                    {
                        currentPage = int.Parse(Request.QueryString["PageNum"].ToString());
                    }
                }
                int showCounts = 15;//当页显示行数www.zzzyk.com
                string strOrder = " ORDER BY [CreateDateTime] DESC ";//排序规则
                List<News> list_News = newsDao.GetAllNews(currentPage, showCounts, strWhere, strOrder);//获取News数据
                Pager p = newsDao.GetAllNewsPager(currentPage, showCounts, strWhere);//获取分页数据                         
            %>
            <%foreach (News n in list_News) %>
            <%{ %>
                <li><span><%=n.CreateDateTime %></span><a href="Detail.aspx?NID=<%=n.NID %>"><%=n.NewsTitle %></a></li>
            <%} %>
        </ul>
    </div>
    <div>
        <span class="pager"> <%=Method.PagerInfo("current", p)%></span><!--页码-->
    </div>

这上面是一个简单例子,可能大家的写法有所不同,但是原理都差不多。
通过再次封装后,得到如下结果
 <div>
        <ul>
             <%TblName = "News"; Filed = "NewsID,Title,Time"; Num = 15; Sort = "[Time] DESC"; Page = true; %>
             <%=Aspx(@"
        <li><span>{2}</span><a href='Detail.aspx?NID={0}'>{1}</a></li>
        ") %>
        </ul>
    </div>
    <div>
        <span class="pager"><%=AspxP("current") %></span><!--页码-->
    </div>

看看是不是简化了很多。而且,可以通过自定义的“Aspx”函数涵盖所有的列表,字段。而分页则通过“AspxP”来实现。
也更加灵活。TblName 代表表名,Filed代表字段,Num代表所当页显示条数,Sort则代表排序方法,Page代表是否分页。
还有一些参数,在下就不一一列举了。
是不是很像那些CMS。
中间是纯HTML,看起来是不是很舒服。
能够这么写,而不报错,可以参考我的上一篇日志,里面有介绍。
好了,就写到这里,下一篇,我将介绍,其原理。
在下知识有限,如果有哪里介绍的不清楚,还请谅解,有任何疑问,都可以留言。
请大家勇于拍砖!!!

 

摘自  19岸
补充:Web开发 , ASP.Net ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,