Asp.net mvc 4 使用WebGrid分页MVC 4保留搜索筛选器
我无法在Webgrid中跨页面保留筛选器(搜索)。与单击下一页时一样,搜索条件将丢失。有什么想法吗 局部视图:Asp.net mvc 4 使用WebGrid分页MVC 4保留搜索筛选器,asp.net-mvc-4,filter,pagination,webgrid,Asp.net Mvc 4,Filter,Pagination,Webgrid,我无法在Webgrid中跨页面保留筛选器(搜索)。与单击下一页时一样,搜索条件将丢失。有什么想法吗 局部视图: @model IEnumerable<NorthwindMVC_2.Models.GetOrdersResult> @using NorthwindMVC_2.Models; <input type="hidden" id="page" /> @{ ViewBag.Title = "_Grid"; Layout = null; } @using (Html
@model IEnumerable<NorthwindMVC_2.Models.GetOrdersResult>
@using NorthwindMVC_2.Models;
<input type="hidden" id="page" />
@{
ViewBag.Title = "_Grid";
Layout = null;
}
@using (Html.BeginForm(FormMethod.Get))
{
<input type="search" name="SearchString" style="width:650px; margin-right:10px" placeholder="ID, Ship Name, Ship Address, Required Date, Postal Code" id="txtSearch" />
<input type="submit" value="Search"/>
<input type="button" value="Clear" id="btnClear"/>
<script>
$("#btnClear").live("click", refreshGrid);
function refreshGrid() {
var pageNumber = '@ViewBag.page';
//$("#txtSearch").val("");
$.ajax(
{
type: "GET",
url: '@Url.Action("OrdersList", "Orders")',
data: {
searchText: $("#txtSearch").val(),
page: pageNumber
},
dataType: "html",
success: function (data) {
$("#agrid").html(data);
}
})
}
</script>
<script type="text/javascript">
var PageNumber = '@ViewBag.page';
$(document).ready(function page() {
//alert(PageNumber);
});
//var page = '@ViewBag.page';
</script>
<style type="text/css">
.webGrid { margin: 4px; border-collapse: collapse; width: auto; }
.header { background-color: #d3dce0; font-weight: bold; color: whitesmoke; }
.webGrid th, .webGrid td {border: 1px solid #C0C0C0; padding: 5px; }
.alt { background-color: lightgrey; color: #000; }
.footer { padding:10px; background-color:#d3dce0; color:black;}
.birthdate { width:200px;}
.id { width:50px;}
.general { width: 120px;}
</style>
var grid = new WebGrid(null,
defaultSort: "",
rowsPerPage: 10,
canPage:true,
ajaxUpdateContainerId:"grid",
selectionFieldName: "SearchString",
sortFieldName:"SortColumn",
sortDirectionFieldName:"SortOrder");
<div style="display:none">
@grid.Bind(Model, autoSortAndPage: false, rowCount: ViewBag.tr);
</div>
if (Model.Count() > 0)
{
<div id="grid">
@grid.GetHtml(
tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
footerStyle: "footer",
mode: WebGridPagerModes.All,
numericLinksCount: 9,
firstText: "First",
lastText: "Last",
previousText: "<",
nextText: ">",
columns: grid.Columns(
grid.Column("OrderID", header:"ID", style:"id"),
grid.Column("ShipName", "Name", style:"birthdate" , format: @<text>@Html.ActionLink((string)item.ShipName, "Edit", "Orders", new { RowID = item.RowID, orderId = item.OrderID, page= (int) @ViewBag.page }, null)</text>),
grid.Column("ShipAddress", header:"Address", style:"birthdate"),
grid.Column("RequiredDate", header:"Required Date", style:"birthdate"),
grid.Column("ShipPostalCode", header:"Postal Code", style:"general"),
@*grid.Column("Action", format: @<text>
<button class="edit-user display-mode" >Edit</button>
<button class="save-user edit-mode" >Save</button>
<button class="cancel-user edit-mode" >Cancel</button>
</text>, style: "" , canSort: false)*@
//grid.Column("Edit", format: (item) => Html.ActionLink("Edit", "Edit", "Orders", new { RowID = item.RowID, orderId = item.OrderID, page= (int) @ViewBag.page }, new { style = "color:#000" })),
grid.Column("Delete", format: (item) => Html.ActionLink("Delete", "Delete", new { orderId = (int)item.OrderID }, new { onclick = "return confirm('Do you want to Delete this Order?')", style = "color:#000" })
)
)
)
</div>
}
else
{
<p>
No records found.</p>
}}
<script type="text/javascript">
var searchText = $("#txtSearch").val();
$(function () {
$('tfoot a').click(function () {
var pageNumber = '@ViewBag.page';
// $("#txtSearch").val("");
$.ajax(
{ searchText : $("#txtSearch").val(),
type: "GET",
url: '@Url.Action("OrdersList", "Orders")',
data: {
searchText: $("#txtSearch").val(),
page: pageNumber
},
dataType: "html",
success: function (data) {
$("#agrid").html(data);
}
})
// // when the user clicks on any of the pager links
// // try to extract the page number from the link and
// // set the value of the hidden field
// var SearchString = $("#txtSearch")
// var page = this.href.match(/page=([0-9])+/)[1];
// $('#page').val(page);
// alert(page);
// // submit the form so that the POST action is invoked
// // passing along the search criteria (Name and Year) along
// // with the page hidden field value to the Index action
// $('form').submit();
// // cancel the default action of the link which is to simply redirect
// // to the Index action using a GET verb.
// return false;
});
});
</script>
@model IEnumerable
@使用NorthwindMVC_2.0模型;
@{
ViewBag.Title=“_网格”;
布局=空;
}
@使用(Html.BeginForm(FormMethod.Get))
{
$(“#btnClear”).live(“单击”,刷新网格);
函数refreshGrid(){
var pageNumber='@ViewBag.page';
//$(“#txtSearch”).val(“”);
$.ajax(
{
键入:“获取”,
url:'@url.Action(“订单列表”、“订单”),
数据:{
searchText:$(“#txtSearch”).val(),
页码:页码
},
数据类型:“html”,
成功:功能(数据){
$(“#agrid”).html(数据);
}
})
}
var PageNumber='@ViewBag.page';
$(文档).ready(功能页(){
//警报(页码);
});
//var page='@ViewBag.page';
.webGrid{margin:4px;边框折叠:折叠;宽度:自动;}
.header{背景色:#d3dce0;字体大小:粗体;颜色:WhiteMoke;}
.webGrid th、.webGrid td{边框:1px实心#c0c0;填充:5px;}
.alt{背景色:浅灰色;颜色:#000;}
.footer{填充:10px;背景色:#d3dce0;颜色:黑色;}
.出生日期{宽度:200px;}
.id{宽度:50px;}
.general{宽度:120px;}
var grid=新WebGrid(空,
defaultSort:“”,
行页码:10,
坎佩奇:没错,
ajaxUpdateContainerId:“网格”,
selectionFieldName:“搜索字符串”,
sortFieldName:“SortColumn”,
sortDirectionFieldName:“SortOrder”);
@Bind(Model,autoSortAndPage:false,rowCount:ViewBag.tr);
如果(Model.Count()>0)
{
@grid.GetHtml(
表样式:“webGrid”,
headerStyle:“header”,
alternatingRowStyle:“alt”,
页脚样式:“页脚”,
模式:WebGridPagerModes.All,
数字链接:9,
firstText:“第一”,
lastText:“Last”,
前文:“,
列:grid.columns(
grid.Column(“OrderID”,标题:“ID”,样式:“ID”),
grid.Column(“ShipName”、“Name”,样式:“birthdate”,格式:@@Html.ActionLink((string)item.ShipName,“Edit”,“Orders”,new{RowID=item.RowID,orderId=item.orderId,page=(int)@ViewBag.page},null)),
网格栏(“发货地址”,标题:“地址”,样式:“出生日期”),
grid.列(“RequiredDate”,标题:“必需日期”,样式:“生日”),
网格栏(“ShipPostalCode”,标题:“邮政编码”,样式:“一般”),
@*网格.列(“操作”,格式:@
编辑
拯救
取消
,样式:“”,可排序:false)*@
//grid.Column(“编辑”,格式:(item)=>Html.ActionLink(“编辑”,“编辑”,“订单”,新建{RowID=item.RowID,orderId=item.orderId,page=(int)@ViewBag.page},新建{style=“color:#000”}),
grid.Column(“Delete”,format:(item)=>Html.ActionLink(“Delete”,“Delete”,new{orderId=(int)item.orderId},new{onclick=“return confirm('是否要删除此订单?')”),style=“color:#000”})
)
)
)
}
其他的
{
没有找到任何记录
}}
var searchText=$(“#txtSearch”).val();
$(函数(){
$('tfoot a')。单击(函数(){
var pageNumber='@ViewBag.page';
//$(“#txtSearch”).val(“”);
$.ajax(
{searchText:$(“#txtSearch”).val(),
键入:“获取”,
url:'@url.Action(“订单列表”、“订单”),
数据:{
searchText:$(“#txtSearch”).val(),
页码:页码
},
数据类型:“html”,
成功:功能(数据){
$(“#agrid”).html(数据);
}
})
////当用户单击任何寻呼机链接时
////尝试从链接中提取页码,然后
////设置隐藏字段的值
//var SearchString=$(“#txtSearch”)
//var page=this.href.match(/page=([0-9])+/)[1];
//$('第页').val(第页);
//警报(第页);
////提交表单以便调用POST操作
////将搜索条件(名称和年份)传递给
////将页面隐藏字段值添加到索引操作
//$('form').submit();
////取消链接的默认操作,该操作只是重定向
////使用GET谓词将其添加到索引操作。
//返回false;
});
});
在$('tfoot a')中。单击(函数()…它将通过ajax请求向action方法发送一个“GET”请求(/?page=1)。您必须在此代码中处理寻呼机链接单击事件
你可以这样做
$('tfoot a').click(function () {
var form = $('#yourformid');
form.attr("action", this.href);
$(this).attr("href", "#");
form.submit();
});
那么只有它会保留您的搜索条件模型
请注意这件事