您的位置: 首页 >日志>动易系统>详细内容

动易系统

在前台实现扩展字段筛选查询功能

来源:本站原创 发布时间:2022-04-12 08:45:43 浏览次数: 【字体:

在前台实现扩展字段筛选查询功能?在最近更新的版本中给出解决办法。

8b526c6664b64680965adf6aa0c21c54.jpg

根据扩展字段查询列表。

GetPageListB yExtendFields(Node, I nt32, I nt32, I nt32)
GetPageListB yExtendFields(Node, I nt32, I nt32, I nt32, Dictionary, String, String, Boolean) 

2fad06432a89491fb6f8868cdb4823d4.jpg

虽然在实施中发现这个函数在目前新版中依然存在不少问题,但与开发部多次沟通后问题得以解决,后续应该会修复到公版之中。


接下来看看该项目的使用方法

@{
    //获取传参
    string keyword = UrlParams.Keyword != null ? UrlParams.Keyword.ToString() : "";
    string ssds = UrlParams.ssds != null ? UrlParams.ssds.ToString() : "";
    string tzzefw = UrlParams.tzzefw != null ? UrlParams.tzzefw.ToString() : "";
    string rzzefw = UrlParams.rzzefw != null ? UrlParams.rzzefw.ToString() : "";
    //初始化排序方式
    string orderBy = "PublishTime Desc";
    //初始化筛选字段字典,把传参中带有的字段加载到筛选字典中
    var extendFieldFilters = new Dictionary<string, string>();
    if (!string.IsNullOrEmpty(ssds)){
        extendFieldFilters.Add("ssds",ssds);
    }
    if (!string.IsNullOrEmpty(tzzefw)){
        extendFieldFilters.Add("tzzefw",tzzefw);
    }
    if (!string.IsNullOrEmpty(rzzefw)){
        extendFieldFilters.Add("rzzefw",rzzefw);
    }
    //实例化文章模型服务层,并调用方法获取数据
    var articleService = new ArticleService();
    var articles = articleService.GetPageListByExtendFields(Model,20,0,0, extendFieldFilters ,keyword,orderBy,false);
}



按下来看看该项目实例中模板需加代码

HTML部份为筛选项,这里应该动态调用出来后续扩展性会比较好,因为该项目选项相对固定所以写成静态。

脚本部份为给筛选项目增加链接以及搜索部份提交执行脚本。

    <div class="filterSearch clearfix">
        <dl id="area">
            <dt>所属地市:</dt>
            <dd>
                <a>全部</a>
                <a>太原市</a>
                <a>大同市</a>
                <a>朔州市</a>
                <a>忻州市</a>
                <a>阳泉市</a>
                <a>吕梁市</a>
                <a>晋中市</a>
                <a>长治市</a>
                <a>晋城市</a>
                <a>临汾市</a>
                <a>运城市</a>
            </dd>
        </dl>
        <dl id="invest">
            <dt>投资总额:</dt>
            <dd>
                <a>全部</a>
                <a>100万元以下</a>
                <a>100-500万元</a>
                <a>500-1000万元</a>
                <a>1000-5000万元</a>
                <a>5000万元-1亿</a>
                <a>1亿元以上</a>
            </dd>
        </dl>
        <dl id="financing">
            <dt>融资总额:</dt>
            <dd>
                <a>全部</a>
                <a>100万元以下</a>
                <a>100-500万元</a>
                <a>500-1000万元</a>
                <a>1000-5000万元</a>
                <a>5000万元-1亿</a>
                <a>1亿元以上</a>
            </dd>
        </dl>
        <dl>
            <dt>项目标题:</dt>
            <dd>
                <input name="keyword" id="keyword" type="text" class="keyword" placeholder="标题名称关键词" value="@keyword">
                <button type="button" id="advsearch"></button>
                <button id="resetsearch">重置</button>
            </dd>
        </dl>
    </div>
    <script type="text/javascript">
        $(function () {
             
            function getQueryString(name) {
            var result = window.location.search.match(new RegExp("[\?\&]" + name + "=([^\&]+)""i"));
            if (result == null || result.length < 1) {return "";}
                return result[1];
            }
 
            var nodehref = window.location.pathname;
            var area = decodeURIComponent(getQueryString("ssds"));
            var invest = decodeURIComponent(getQueryString("tzzefw"));
            var financing = decodeURIComponent(getQueryString("rzzefw"));
 
            if(area == '')$('#area dd a').eq(0).addClass("selected");
            if(invest == '')$('#invest dd a').eq(0).addClass("selected");
            if(financing == '')$('#financing dd a').eq(0).addClass("selected");
 
            $('#area dd a').each(function(){
                if($(this).text() == area) $(this).addClass("selected"); 
                var url = "?keyword=" + encodeURIComponent($("#keyword").val());
                if($(this).text() != '全部') url = url + "&ssds=" + $(this).text();
                if(invest != '' ) url = url + "&tzzefw=" + invest;
                if(financing != '' ) url = url + "&rzzefw=" + financing;
                $(this).attr('href',nodehref + url);
            })
 
            $('#invest dd a').each(function(){
                if($(this).text() == invest) $(this).addClass("selected");
                var url = "?keyword=" + encodeURIComponent($("#keyword").val());
                if(area != '' ) url = url + "&ssds=" + area;
                if($(this).text() != '全部') url = url + "&tzzefw=" + $(this).text();
                if(financing != '' ) url = url + "&rzzefw=" + financing;
                $(this).attr('href',nodehref + url);
            })
 
            $('#financing dd a').each(function(){
                if($(this).text() == financing) $(this).addClass("selected");
                var url = "?keyword=" + encodeURIComponent($("#keyword").val());
                if(area != '' ) url = url + "&ssds=" + area;
                if(invest != '' ) url = url + "&tzzefw=" + invest;
                if($(this).text() != '全部') url = url + "&rzzefw=" + $(this).text();
                $(this).attr('href',nodehref + url);
            })
 
            function SendSearch() {
                var url = "?keyword=" + encodeURIComponent($("#keyword").val());
                if(area != '' ) url = url + "&ssds=" + area;
                if(invest != '' ) url = url + "&tzzefw=" + invest;
                if(financing != '' ) url = url + "&rzzefw=" + financing;
                location.href = nodehref + url;
            }
            function ResetSearch() {
                location.href = nodehref;
            }
 
            $("#advsearch")
                .on("click",
                    function () {
                        SendSearch();
                    });
            $("#resetsearch")
                .on("click",
                    function () {
                        ResetSearch();
                    });
 
            $("#keyword")
                .on("keydown",
                    function (e) {
                        if (e.keyCode == 13) {
                            SendSearch();
                        }
                    });
 
        })
    </script>
 
    <!-- mainContent S -->
    <div class="mainContent">
        @Power.Partial("节点归档图标"new { Node = Model })
        <div class="mainBox">
            <div class="mBd">
                <!-- 正文内容 S -->
                <ul class="newsList">
                    @if ((articles != null) && articles.Any())
                    {
                        foreach (var article in articles)
                        {
                            <li>
                                <span class="date">@article.PublishTime.ToString("yyyy-MM-dd")</span>
                                <a class="tit" href="@article.ContentUrl()" target="_blank">@article.Title.CutTextByKeyword(100, "…", keyword, "<em>" + keyword + "</em>")</a>
                            </li>
                        }
                    }else{
                        <li class="noData">没有查询到相关结果</li>
                    }
                </ul>
                <div class="page">@Power.Partial("通用分页")</div>
                <!-- 正文内容 E -->
            </div>
        </div>
    </div>
    <!-- mainContent E -->



除此之外我们还能扩展为以下这种类似高级查询的效果,但由于这个函数功能上还只是针对筛选所用,所以除了搜索标题能进行模糊搜索以除,其它字段只能进行精准搜索。

69cf770acdb149a5a71347d1189bc52d.png




×

用户登录