DTcms5(一)

环境搭建

解析常用代码

$(function () {
        //检测IE
        if ('undefined' == typeof (document.body.style.maxHeight)) {
            window.location.href = 'ie6update.html';
        }
    });
  • 检测IE6 由于兼容问题在页面加载前要对浏览器的版本进行检查。

界面布局

  • …list.aspx …edit.aspx
  • list一般是展示页面用于查询数据库中的记录展示出来。
  • edit一般是用来添加记录

常用功能—搜索

  • 你会发现几乎每一个页面都有一个小放大镜,在数据成对的时候这就排上用场了。
  • 注这里以 aticle_list.aspx为例子
    前端代码
<div class="r-list">
        <asp:TextBox ID="txtKeywords" runat="server" CssClass="keyword" />
        <asp:LinkButton ID="lbtnSearch" runat="server" CssClass="btn-search" onclick="btnSearch_Click"><i class="iconfont icon-search"></i></asp:LinkButton>
      </div>
      //TextBox 就是前面的输入框
      //LinkButton就是后面的放大镜  点击以后会去执行 后台的btnSearch_Click事件

后台的 搜索事件

 protected void btnSearch_Click(object sender, EventArgs e)
        {
            Response.Redirect(Utils.CombUrlTxt("article_list.aspx", "channel_id={0}&category_id={1}&keywords={2}&property={3}",
                this.channel_id.ToString(), this.category_id.ToString(), txtKeywords.Text, this.property));
        }
//可以看出就是执行了重定向括号里面就是为了 拼出url(根据里输入的条件)
1.可以看出{0}{1}  一猜就是要吧后面的东西加到里面组成符合http 协议的参数。
2.其他的参数与这个功能无关 我们只看 keywords 
3.txtKeywords 就是前端的TextBox 
CobUrlTxt 很容易理解  很像 Format

CombUrlTxt 方法

public static string CombUrlTxt(string _url, string _keys, params string[] _values)
        {
            StringBuilder urlParams = new StringBuilder();
            //定义一个StringBuilder 准备好拼接工程
            try
            {

                string[] keyArr = _keys.Split(new char[] { '&' });
                //_keys 里面 channel_id={0}&category_id={1}&keywords={2}&property={3}
                //将其通过‘&’进行分割  然后就要拼接了
                for (int i = 0; i < keyArr.Length; i++)
                {
                    if (!string.IsNullOrEmpty(_values[i]) && _values[i] != "0")
                    {
                    //从可变参数中拿出对应的值
                        _values[i] = UrlEncode(_values[i]);
                        //进行编码 可以不用看
                        urlParams.Append(string.Format(keyArr[i], _values) + "&");
                        //使用Format (keyword={2} ,"好文章")->keyword=好文章&
                        //因为有多个参数所以要加上‘&’
                        //拼接完成 
                    }
                }
                if (!string.IsNullOrEmpty(urlParams.ToString()) && _url.IndexOf("?") == -1)

                    urlParams.Insert(0, "?");
                    //如果有参数的话就在参数的开头加上‘?’
                    //这样就符合http协议了如果没有参数就只用地址。
            }
            catch
            {
                return _url;
            }
            return _url + DelLastChar(urlParams.ToString(), "&");
            //将最后一个&去掉  内部使用 Substring 不再细说
        }
  • 现在我们就可以带着条件重定向到网页了 例子:article_list.aspx?keyword=好文章
  • 现在就会去请求article_list.aspx
this.channel_id = DTRequest.GetQueryInt("channel_id");
            this.category_id = DTRequest.GetQueryInt("category_id");

            ***this.keywords = DTRequest.GetQueryString("keywords");***
           //我们先只看这个从
           //为什么要自己定义方法呢   内部多了一个如果是sql 语句的会进行安全检测防止注入。

            this.property = DTRequest.GetQueryString("property");

            //这里都是使用
            //判断点击的是哪一个按钮
            if (channel_id == 0)
            {
                JscriptMsg("频道参数不正确!", "back");
                return;
            }
            this.channel_name = new BLL.site_channel().GetChannelName(this.channel_id); //取得频道名称
            this.pageSize = GetPageSize(10); //每页数量
            this.prolistview = Utils.GetCookie("article_list_view"); //显示方式


            //看页面是否是第一次加载(asp 的请求就不会执行这里面的代码)
            if (!Page.IsPostBack)
            {

                ChkAdminLevel("channel_" + this.channel_name + "_list", DTEnums.ActionEnum.View.ToString()); //检查权限


                TreeBind(this.channel_id); //绑定类别

                ***RptBind(this.channel_id, this.category_id, "id>0" + CombSqlTxt(this.keywords, this.property), "sort_id asc,add_time desc,id desc");***
                //我们先看与 搜索有关的代码  
            }
        }

     //看一下RptBind  数据绑定 前台数据都是通过 数据绑定来实现 显示的
     //这里 只看string _strWhere 代码 即
     //先看一下CombSqlTxt(this.keywords, this.property)

    //根据搜索的条件生成 sql 这样在查询数据库的时候又多一个条件 从而实现搜索
  #region 组合SQL查询语句==========================
        protected string CombSqlTxt(string _keywords, string _property)
        {
            StringBuilder strTemp = new StringBuilder();
            _keywords = _keywords.Replace("'", "");
            if (!string.IsNullOrEmpty(_keywords))
            {
            //如果是第一次加载 没有点击搜索 这里就不会有多余的条件。
                strTemp.Append(" and title like '%" + _keywords + "%'");
                //条件最中会生成  sql  中的  title like %好文章%

            }


            return strTemp.ToString();
        }
        #endregion


//接下来就是去查询数据库和把数据绑定到前端界面了


        #region 数据绑定=================================
        private void RptBind(int _channel_id, int _category_id, string _strWhere, string _orderby)
        {



            BLL.article bll = new BLL.article();
            switch (this.prolistview)
            {
                //两种 服务器模板绑定 并且设置一个不可见。
                //这里有两种显示方式 不用管  我们先看一种
                case "Txt":

                    this.rptList2.Visible = false; 设置这个模板 不显示
                    this.rptList1.DataSource = bll.GetList(_channel_id, _category_id, this.pageSize, this.page, _strWhere, _orderby, out this.totalCount);
                    模板一的 数据源 就是用生成好的 去查数据库获取数据

                    this.rptList1.DataBind();
                    //绑定 数据 显示数据
                    break;
                default:
                    this.rptList1.Visible = false;
                    this.rptList2.DataSource = bll.GetList(_channel_id, _category_id, this.pageSize, this.page, _strWhere, _orderby, out this.totalCount);
                    this.rptList2.DataBind();
                    break;
            }
            //绑定页码

            string pageUrl = Utils.CombUrlTxt("article_list.aspx", "channel_id={0}&category_id={1}&keywords={2}&property={3}&page={4}",
                _channel_id.ToString(), _category_id.ToString(), this.keywords, this.property, "__id__");
            PageContent.InnerHtml = Utils.OutPageList(this.pageSize, this.page, this.totalCount, pageUrl, 8);
        }
        #endregion

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此旗舰版 修改与 DTcms V5.0 正式版MSSQL源码 更新时间:2017年09月21日 在此版本基础上增加了所有旗 DTcms V5.0 旗舰版功能 经本人测试没测试出问题 如有发现问题可以留言 DTcms V5.0源码说明: 版本号:V5.0.0 数据库:MSSQL2005 修复日志: 2017-06-11 修复前台模板订单结算时地址无法选择BUG 2017-06-12 修复后台管理菜单无法上传图标的BUG 2017-07-09 修复第三方登录出错的BUG 2017-09-20 修复前台会员注册时获取手机验证码短信防止注册机重复发送短信BUG DTcms5.0改进的地方: 1. 后台管理界面加强美化,使用矢量图标代替位图,对于树型菜单增加可闭合和展开,调整了部分页面的布局; 2. 对于会员、订单等进行站点归类,更好区分每个站点数据; 3. 创建频道时,根据选择的功能创建不同的管理菜单; 4. 网页编辑器使用了UEditor百度编辑器,上传进行了改造,使用二进制上传文件; 5. 支付方式,第三方登录OAuth可每个站点设置不同的配置信息,不再限于全局使用; 6. 对系统架构进行全新改造,每增加一个频道自动创建对象数据库表存储; 7. 插件模板支持不同的站点可创建不同的对应模板; 8. DAL层代码改进,通过反射进行解析Model实体自动赋值,不必担心增加数据库字段而修改DAL层烦恼; 二、安装环境要求 开发工具:Microsoft Visual Studio 2010 操作系统:Windows Server 2008(推荐) 、Windows Server 2003(推荐)、Windows XP(基础测试环境) 数据库: Sql Server 2005(推荐)、Sql Server 2008(推荐) Web服务器:IIS 5.0及以上版本(推荐IIS7.0,应用池为集成模式) 环境要求:.NET Framework 4.x及以上
开发工具:Microsoft Visual Studio 2010 操作系统:Windows Server 2008(推荐) 、Windows Server 2003(推荐)、Windows XP(基础测试环境) 数据库: Sql Server 2005(推荐)、Sql Server 2008(推荐) Web服务器:IIS 5.0及以上版本(推荐IIS7.0,应用池为集成模式) 环境要求:.NET Framework 4.x及以上 三、安装布置流程 由于您下载的是DTcms源码,所以您还需要以下步骤生成网站发布文件方可上传到你的网站空间中 1、 用Microsoft Visual Studio 2010打开源码中的DTcms.sln; 2、 找到DTcms.Web项目,右击在弹出的菜单中选择“发布”; 3、 在弹出的对话框中,“发布方法”选择文件系统,“目标位置”选择您要存放本地的目录; 4、 单击“发布”按扭,生成编译文件,由于部分文件和目录并未包含在项目中,此时需要手动拷贝过来; 5、 将“DTcms.Web”项目下的aspx、html、plugins、upload三个文件夹拷贝到您本地发布目录,由于友情链接和留言插件已安装,所以还需将“DTcms.Web/bin”目录下的DTcms.Web.Plugin.Link.dll和DTcms.Web.Plugin.Feedback.dll拷贝过来,否则无法查看留言和友情链接页面。 6、 通过FTP工具将网站上传到你的空间下即可; 7、 后台登录地址:http://你的网址/admin/login.aspx,默认管理员帐号:admin,密码:admin888 8、 更多插件源码下载请登录官方技术论坛:http://bbs.dtsoft.net 经过以上步骤,网站安装流程完毕,下一步附件数据库及更改数据库连接节点 1、 源码项目中,有一个名为“DataBase”的文件夹,里面存在的是SQL数据库文件,其中“DTcmsdb4.mdf”是MSSQL2005数据库文件,。 2、 具体的安装配置数据库请查看:http://www.dtcms.net/help.html 3、 找到网站目录下的“Web.config”文件,找到“connectionStrings”节点,将其更改为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值