亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET動態屬性篩選和分頁綁定

2019-11-14 15:47:51
字體:
來源:轉載
供稿:網友

分頁控件為:aspNetPager.dll

我們先建立一個產品屬性名稱表

CREATE TABLE PRoductAttr(    [ID] [int] IDENTITY(1,1) NOT NULL primary key,    [ParentID] [int] NULL,    [Kind] [int] NULL,    [CNName] [nvarchar](50) NOT NULL,    [ENName] [nvarchar](50) NOT NULL,    [Sort] [int] NOT NULL,    [AddTime] [datetime],)

 

再建一個屬性內容表

CREATE TABLE ProductAttrInfo(    [ID] [int] IDENTITY(1,1) NOT NULL primary key,    [ParentID] [int] NULL,    [CNName] [nvarchar](50) NOT NULL,    [Sort] [int] NOT NULL,    [AddTime] [datetime] NOT NULL,    [Color] [nvarchar](50) NULL,)

 

產品表叫Product

頁面呈現效果為:

 

其中的產品分類、形狀、其他為動態的產品屬性名稱,對象相關的屬性內容。

 

我們首頁要把相關的內容綁定,然后再根據傳參,把相關的屬性編號和內容編號,通過正則的方式找出來,然后把當前也是和屬性內容的ID找出來,方便我們查詢產品。

 

/// <summary>/// 通過正則,把相關的屬性ID拿到,然后判斷屬性名稱ID的值即為屬性值的ID值/// </summary>/// <param name="ids"></param>/// <returns></returns>protected int getAttrSql(int ids){    int value = 0;    string url = Request.Url.ToString().ToLower();    if (url.IndexOf("?") >= 0)    {        string index = url.Remove(0, url.IndexOf("?") + 1);        string para = index.Replace("?", "");        //切割成一個一個的參數并轉換成SQL語句        string[] ps = para.Split('&');        string sql = "";        for (int i = 0; i < ps.Length; i++)        {            string s = ps[i];            //檢查參數是否是p/d*=/d*開頭的,如果是則認為這個參數是屬性的參數            if (System.Text.RegularExpressions.Regex.IsMatch(s, @"p/d{1,}=/d{1,}"))            {                //去掉p切割成數字                string[] pp = s.Replace("p", "").Split('=');                int c = int.Parse(pp[0].ToString());                if (c == ids)                {                    value = int.Parse(pp[1].ToString());                    break;                }            }        }    }    return value;}
/// <summary>/// 綁定相關屬性名稱和內容,其中參數one和two,我這里是一級二級產品編號,可以忽略,ParentID為一級產品分類的ID,Kind為二級產品分類的ID/// </summary>/// <param name="one"></param>/// <param name="two"></param>public void BindAttrInfo(Model.ProductType one, Model.ProductType two){    StringBuilder sb = new StringBuilder();    //if (two != null)    //{    //    List<Model.ProductAttr> list = new BLL.ProductAttr().GetList(0, "CNName,ID", "ParentID=" + one.ID + " and Kind=" + two.ID + "", "Sort desc,AddTime desc");    //    foreach (Model.ProductAttr l in list)    //    {    //        sb.AppendFormat("<dl class=/"clearfix/"><dt>{0}</dt>", l.CNName);    //        List<Model.ProductAttrInfo> list2 = new BLL.ProductAttrInfo().GetList(0, "CNName,ID", "Pid=" + l.ID + "", "Sort desc,AddTime desc");    //        if (list2.Count > 0)    //        {    //            sb.AppendFormat("<dd><a href=/"{0}/" {1}>全部</a>", getUrl("p" + l.ID.Value, ""), getAttrSql(l.ID.Value) <= 0 ? "class=/"cur/"" : "");    //            foreach (Model.ProductAttrInfo l2 in list2)    //            {    //                sb.AppendFormat("<a href=/"{0}/" {1}>{2}</a>", getUrl("p" + l.ID.Value, l2.ID.Value.ToString()), getAttrSql(l.ID.Value) == l2.ID.Value ? "class=/"cur/"" : "", l2.CNName);    //            }    //            sb.AppendFormat("</dd>");    //        }    //        sb.Append("</dl>");    //    }    //}    //else    //{    List<Model.ProductType> twoType = new BLL.ProductType().GetList(0, "CNName,ID", "IsPass=1 and Kind=" + one.ID + "", "Sort desc,AddTime desc");    if (twoType.Count > 0)    {        sb.AppendFormat("<dl class=/"clearfix/"><dt>產品分類</dt><dd>");        sb.AppendFormat("<a {1} href=/"/products/?ParentID={0}/">全部</a>", one.ID, Kind <= 0 ? "class=/"cur/"" : "");        foreach (Model.ProductType l in twoType)        {            sb.AppendFormat("<a href=/"/products/?ParentID={0}&Kind={1}/" {3}>{2}</a>", one.ID.Value, l.ID.Value, l.CNName, Kind == l.ID.Value ? "class=/"cur/"" : "");        }        sb.AppendFormat("</dd></dl>");    }    List<Model.ProductAttr> list = new BLL.ProductAttr().GetList(0, "CNName,ID", "ParentID=" + one.ID + " and Kind=0", "Sort desc,AddTime desc");    foreach (Model.ProductAttr l in list)    {        sb.AppendFormat("<dl class=/"clearfix/"><dt>{0}</dt>", l.CNName);        List<Model.ProductAttrInfo> list2 = new BLL.ProductAttrInfo().GetList(0, "CNName,ID", "Pid=" + l.ID + "", "Sort desc,AddTime desc");        if (list2.Count > 0)        {            sb.AppendFormat("<dd><a href=/"{0}/" {1}>全部</a>", getUrl("p" + l.ID.Value, ""), getAttrSql(l.ID.Value) <= 0 ? "class=/"cur/"" : "");            foreach (Model.ProductAttrInfo l2 in list2)            {                sb.AppendFormat("<a href=/"{0}/" {1}>{2}</a>", getUrl("p" + l.ID.Value, l2.ID.Value.ToString()), getAttrSql(l.ID.Value) == l2.ID.Value ? "class=/"cur/"" : "", l2.CNName);            }            sb.AppendFormat("</dd>");        }        sb.Append("</dl>");    }    // }    Lit_ProductAttrList.Text = sb.ToString();}
/// <summary>/// 綁定產品/// </summary>public void BindProducts(){    string where = "ParentID=" + ParentID + "";    if (Kind > 0)    {        where += " and Kind=" + Kind + "";        where += GetWhereAttr();    }    else    {
where += GetWhereAttr(); } string strOrder = "Sort desc,AddTime desc"; if (OrderBy == 1) { strOrder = "SaleNum desc,Sort desc,AddTime desc"; } else if (OrderBy == 2) { strOrder = "SalPrice,Sort desc,AddTime desc"; } Model.PageData<Model.Product> data = new BLL.Product().GetList(20, base.PageIndex, "", where, strOrder); repList.DataSource = data.DataSoure; repList.DataBind(); pgServer.RecordCount = data.Count; pgServer.UrlRewritePattern = getUrl("1", "1").Replace("#pro-list", "") + "&page={0}#pro-list"; pgServer.PageSize = 20; AllCount = data.Count; AllPage = data.PageCount; ThisPage = base.PageIndex; if (ThisPage < 1) { ThisPage = 1; } if (AllPage == 0) { ThisPage = 0; } pgServer.DataBind();}
/// <summary>/// 獲取Url/// </summary>/// <param name="name"></param>/// <param name="value"></param>/// <returns></returns>protected string getUrl(string name, string value){    string url = System.Text.RegularExpressions.Regex.Replace(Request.Url.Query.Trim(), @"^/?", "");    url = System.Text.RegularExpressions.Regex.Replace(url, "^" + name + "=.*?&|" + name + "=.*?&", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    url = System.Text.RegularExpressions.Regex.Replace(url, "&{0,1}" + name + "=.*", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    url = System.Text.RegularExpressions.Regex.Replace(url, "^page=.*?&|page=.*?&", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    url = System.Text.RegularExpressions.Regex.Replace(url, "&{0,1}page=.*", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    if (url.Trim() == "")    {        return "/products/?" + name + "=" + value + "#pro-list";    }    return getReplaceUrl("/products/?" + name + "=" + value + "&" + url.Replace("#pro-list", "") + "#pro-list", "key");}/// <summary>/// 獲取Url/// </summary>/// <param name="name"></param>/// <param name="value"></param>/// <returns></returns>protected string getReplaceUrl(string url, string name){    url = System.Text.RegularExpressions.Regex.Replace(url, "^" + name + "=.*?&|" + name + "=.*?&", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    url = System.Text.RegularExpressions.Regex.Replace(url, "^page=.*?&|page=.*?&", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    url = System.Text.RegularExpressions.Regex.Replace(url, "&{0,1}page=.*", "", System.Text.RegularExpressions.RegexOptions.IgnoreCase);    return url;}
/// <summary>/// 獲取屬性條件-綁定/// </summary>/// <returns></returns>protected string GetWhereAttr(string where){    string value = "";    string url = Request.Url.ToString().ToLower();    if (url.IndexOf("?") >= 0)    {        string index = url.Remove(0, url.IndexOf("?") + 1);        string para = index.Replace("?", "");        //切割成一個一個的參數并轉換成SQL語句        string[] ps = para.Split('&');        string sql = "";        for (int i = 0; i < ps.Length; i++)        {            string s = ps[i];            //檢查參數是否是p/d*=/d*開頭的,如果是則認為這個參數是屬性的參數            if (System.Text.RegularExpressions.Regex.IsMatch(s, @"p/d{1,}=/d{1,}"))            {                //去掉p切割成數字                string[] pp = s.Replace("p", "").Split('=');                int c = int.Parse(pp[1].ToString());                //c為屬性內容的編號,根據程序自己做判斷            }        }    }    return value;}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
68精品久久久久久欧美| 蜜臀久久99精品久久久久久宅男| 国产精品视频yy9099| 国内精品视频久久| 国产精品日本精品| 国产精品精品一区二区三区午夜版| 欧美体内谢she精2性欧美| 日韩视频第一页| 亚洲女人天堂av| 在线视频日本亚洲性| 国产成人精品综合久久久| 欧美成人激情在线| 日日骚久久av| 日韩视频精品在线| 欧美激情一区二区三区久久久| 国产精品女人久久久久久| 亚洲www在线观看| 91精品国产高清久久久久久久久| 91久久在线观看| 国产va免费精品高清在线观看| 成人有码在线视频| 国产精品视频xxxx| 欧美精品在线网站| 国产精品久久久久久久久免费| 国产日韩在线看片| 久久久精品网站| 最新91在线视频| 韩国精品久久久999| 成人伊人精品色xxxx视频| 日韩中文字幕在线免费观看| 色悠悠国产精品| 韩国美女主播一区| 国产有码在线一区二区视频| 欧美老女人在线视频| 91精品久久久久久| 色诱女教师一区二区三区| 456国产精品| 亚洲白拍色综合图区| 91在线免费网站| 久国内精品在线| 日韩精品视频在线观看免费| 精品性高朝久久久久久久| 日韩美女免费线视频| 亚洲人成网站色ww在线| 最近2019年中文视频免费在线观看| 欧美视频第一页| 国模私拍一区二区三区| 欧美一乱一性一交一视频| 国产精品久久久久久久7电影| 亚洲免费伊人电影在线观看av| 亚洲精品在线不卡| 日本高清久久天堂| 91免费视频国产| 欧美日韩性生活视频| 91在线免费网站| 91欧美精品成人综合在线观看| 一本一本久久a久久精品综合小说| 91在线高清免费观看| 国产欧美日韩精品在线观看| 欧美激情一区二区三区高清视频| 亚洲精美色品网站| 亚洲一区久久久| 人妖精品videosex性欧美| 欧美亚洲在线观看| 福利一区福利二区微拍刺激| 国产精品中文字幕在线| 国产精品91一区| 欧美亚洲国产日本| 国产精品偷伦一区二区| 欧美日韩亚洲天堂| 亚洲精品久久久久久久久久久| 疯狂做受xxxx欧美肥白少妇| 欧美精品激情视频| 久久国产精品久久久久久| 国产99久久精品一区二区 夜夜躁日日躁| 一区二区三区国产在线观看| 国产精品老牛影院在线观看| 色午夜这里只有精品| 欧美中文在线观看| 亚洲天堂av综合网| 久久精品国产欧美激情| 亚洲精品国偷自产在线99热| 欧美日韩精品中文字幕| 高清在线视频日韩欧美| 91国内精品久久| 美女福利视频一区| 国产欧美日韩最新| 久久精品99久久香蕉国产色戒| 日韩欧美大尺度| 久久久久久亚洲精品不卡| 日本中文字幕久久看| 精品国产拍在线观看| 日韩电影在线观看免费| 亚洲一二三在线| 欧美成人免费小视频| 中文在线资源观看视频网站免费不卡| 国产91九色视频| 亚洲第一精品电影| 久久久久国产精品免费| 国产人妖伪娘一区91| 亚洲国产精品女人久久久| 色婷婷av一区二区三区久久| 欧美日韩在线看| 国产午夜精品全部视频在线播放| 91久久国产精品91久久性色| 欧美一区二区三区精品电影| 大伊人狠狠躁夜夜躁av一区| 欧美xxxx18国产| 在线观看国产欧美| 国产999在线观看| 在线观看欧美日韩国产| 欧美刺激性大交免费视频| 色妞久久福利网| 亚洲成人网av| 亚洲综合精品一区二区| 欧美激情xxxx| 色99之美女主播在线视频| 国产日韩av高清| 日韩精品在线观看一区二区| 欧美激情精品久久久久久免费印度| 亚洲影院在线看| 国产精品你懂得| 国产在线视频不卡| www.国产一区| 亚洲久久久久久久久久| 91免费综合在线| 欧美性在线视频| 在线观看久久久久久| 国产一区香蕉久久| 国产精品美女无圣光视频| 91精品国产91久久| 国产日韩中文字幕在线| 成人综合网网址| 国产欧美va欧美va香蕉在线| 亚洲综合精品一区二区| 亚洲男人av电影| 国产精品一区二区三| 久久成人av网站| 精品亚洲国产视频| 成人网欧美在线视频| 亚洲欧美日本另类| 一道本无吗dⅴd在线播放一区| 亚洲欧美国产日韩天堂区| 日韩欧美精品在线观看| 亚洲女人天堂色在线7777| 日韩在线观看免费网站| 成人久久18免费网站图片| 中文欧美在线视频| 成人免费视频网| 国产91精品不卡视频| 97精品欧美一区二区三区| 国产欧美一区二区三区在线| 精品性高朝久久久久久久| 久久天天躁狠狠躁夜夜躁| 日韩av电影手机在线| 日韩av片电影专区| 国产精品美女久久久久av超清| 亚洲伊人久久综合| 久久福利网址导航| 欧美日韩视频免费播放| 久久精品久久久久| 欧美日韩在线影院| 国产91在线播放精品91| 国产精品久久一|