专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > ASP

ASP.NET Zero-14.一个例证(7)商品分类管理-分类搜索及分页

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
ASP.NET Zero--14.一个例子(7)商品分类管理-分类搜索及分页

分类搜索实现

1.添加搜索框

打开Index视图,添加一个搜索框,代码如下:
...
<div class="portlet light">
    <div class="portlet-title portlet-title-filter">
        <div class="inputs inputs-full-width">
            <div class="portlet-input">
                <form>
                    <div class="input-group">
                        <input id="CategoriesTableFilter" class="form-control" placeholder="@L("SearchWithThreeDot")" type="text" value="@ViewBag.FilterText">
                        <span class="input-group-btn">
                            <button id="GetCategoriesButton" class="btn default" type="submit"><i class="icon-magnifier"></i></button>
                        </span>
                    </div>
                </form>
            </div>
        </div>
    </div>
    <div class="portlet-body">
...

 

保存,刷新页面,效果如下:

2.搜索点击事件

打开Index.js【..MyCompanyName.AbpZeroTemplate.WebAreasMpaViewsCategoryIndex.js】
添加如下代码:
//新建分类点击事件
        $('#CreateNewCategoryButton').click(function () {
            _createModal.open();
        });
        //搜索点击事件
        $('#GetCategoriesButton').click(function (e) {
            //取消事件的默认动作
            e.preventDefault();
            getCategories();
        });

 

然后修改getCategories函数为如下:
function getCategories(reload) {
            if (reload) {
                _$categoriesTable.jtable('reload');
            } else {
                _$categoriesTable.jtable('load', {
                    filter: $('#CategoriesTableFilter').val()
                });
            }
        }

 

3.创建Dto

在CategoryAppDto下创建一个类GetCategoriesInput.cs
【..MyCompanyName.AbpZeroTemplate.ApplicationCategoryAppDtoGetCategoriesInput.cs】
代码如下:
public class GetCategoriesInput : PagedAndSortedInputDto, IShouldNormalize
    {
        public string Filter { get; set; }
        public void Normalize()
        {
            if (string.IsNullOrEmpty(Sorting))
            {
                Sorting = "Name";
            }
        }
    }

 

4.修改方法

打开文件ICategoryAppService
【..MyCompanyName.AbpZeroTemplate.ApplicationCategoryAppICategoryAppService.cs】
GetCategories方法修改为如下:
PagedResultOutput<CategoryOutput> GetCategories(GetCategoriesInput input);

 

对应的实现类CategoryAppService,修改GetCategories方法如下:
public PagedResultOutput<CategoryOutput> GetCategories(GetCategoriesInput input)
        {
            //创建映射
            Mapper.CreateMap<Category, CategoryOutput>();
            var result=_categoryRepository.GetAll();
            if (!string.IsNullOrWhiteSpace(input.Filter))
            {
                result=result.Where(a => a.Name.Contains(input.Filter));
            }
            int totalCount = result.Count();
            return new PagedResultOutput<CategoryOutput>(
                totalCount,
                Mapper.Map<List<CategoryOutput>>(result.ToList())
                );
        }

 

5.测试

生成项目,刷新页面,搜索框输入字符进行查询
 

表格分页实现

由于上面已经实现了一些代码,分页实现起来相对简单,只要修改CategoryAppService类中的GetCategories方法即可,代码如下:
public PagedResultOutput<CategoryOutput> GetCategories(GetCategoriesInput input)
        {
            //创建映射
            Mapper.CreateMap<Category, CategoryOutput>();
            var result=_categoryRepository.GetAll();
            if (!string.IsNullOrWhiteSpace(input.Filter))
            {
                result=result.Where(a => a.Name.Contains(input.Filter));
            }
            int totalCount = result.Count();
            var list=result.OrderBy(input.Sorting).PageBy(input).ToList();//分页
            return new PagedResultOutput<CategoryOutput>(
                totalCount,
                Mapper.Map<List<CategoryOutput>>(list)
                );

        }

 

同时引用using System.Linq.Dynamic;
以支持OrderBy传入string作为参数,这是一个扩展方法
这里顺便把排序也完成了。
点击列可实现排序
至此,整个分类功能已经完成,可以正常使用,如果要求更高,可以对按钮进行权限控制,不同角色操作不同按钮,请继续下一篇:权限控制
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

  • ASP怎么隐藏表单

    ASP如何隐藏表单 <%if Cookies_Toy ="" then response.write "<a href='login.asp'>登录</a> <a href='reg.asp'>注册</a>" ...

  • 为何js调用css脚本后没效果

    为什么js调用css脚本后没效果 这个是css的脚本代码: body,ul,li{margin: 0; padding: 0; border: 0;} body {background: #f5f...

  • 怎么伪造post请求,求指点。

    如何伪造post请求,求指点。。。 要查询大批(也就几万个)运单的状态,那查询网站一次最多查24个,这一个个搞会搞死人的。。 有...

  • Asp.net_简略代码设置GridView自适应列宽不变形

    Asp.net_简单代码设置GridView自适应列宽不变形 动态绑定的GridView由于列数不固定,而列又太多(博主做的这个项目有150个左右的字段...

  • ASP.NET上实现AJAX注册提醒

    ASP.NET下实现AJAX注册提醒 Ajax全称是,主要是利用JavaScript实现异步的数据传输,首先说异步,异步是当前操作进行的时候,用...

  • aspnet_regiis装配出错:0x80070005 拒绝访问

    aspnet_regiis安装出错:0x80070005 拒绝访问 点击右边红色标题查看本文完整版:aspnet_regiis安装出错:0x80070005 拒绝访问安装...

  • 关于网站边框解决方法

    关于网站边框 像hao123这样的网站上的边框是着么弄的?背景图片吗?http://www.hao123.com 另外哪个素材网站有实用的这内素材 -----...

  • ! 多表分组查询统计

    求助!! 多表分组查询统计 高手们,帮帮忙! 用户表 D_user 为 ID Username GroupID 1 张三 2 2 李四 2 3 王五 ...

  • 在Paypal交付的同时,把表单的数据提交给数据库

    在Paypal提交的同时,把表单的数据提交给数据库 本帖最后由 liuyang2708 于 2012-11-20 23:14:54 编辑 在提交这个支付...

  • 虚拟目录上JavaScript不能正常执行

    虚拟目录下JavaScript不能正常执行 各位大侠好,我在同一台服务器上用两种方式部署同一个网站。 第一种方法:在IIS下直接建一个网站...

热门推荐: