Javascript MVC3中使用ajax刷新Webgrid
当按下“刷新”按钮时,我需要刷新一个Webgrid。我还有一个搜索输入 一切都很好,除了每次我点击刷新,页码都被设置回1 这是我的密码 控制器Javascript MVC3中使用ajax刷新Webgrid,javascript,jquery,asp.net-mvc-3,webgrid,Javascript,Jquery,Asp.net Mvc 3,Webgrid,当按下“刷新”按钮时,我需要刷新一个Webgrid。我还有一个搜索输入 一切都很好,除了每次我点击刷新,页码都被设置回1 这是我的密码 控制器 public ActionResult ListImporting(string searchText = "", int page = 1) { ViewBag.RowsPerPage = 2; searchText = searchText.Trim(); Vi
public ActionResult ListImporting(string searchText = "", int page = 1)
{
ViewBag.RowsPerPage = 2;
searchText = searchText.Trim();
ViewBag.searchText = searchText;
ViewBag.page = page;
DtoPaginatedResult<ListImportingDTO> model = listService.GetListsInProgress(page, ViewBag.RowsPerPage, searchText);
if (Request.IsAjaxRequest())
return PartialView("ListImportingGrid", model);
else
return View(model);
}
在部分中,我有网格和当前函数
function updateGrid() {
var pageNumber = @ViewBag.page;
console.log(pageNumber);
$.ajax(
{ type: "GET" ,
url: '/Admin/ListImporting/',
data: { searchText: $("#searchBox").val(),
page: pageNumber
} ,
dataType: "html" ,
success: function (data){
$("#resultList").html(data);
}
})
}
您的页码将重置回1,因为每次调用updateGrid时,您都将其重置为ViewBag.page 换句话说,编译后的razor代码如下所示
function updateGrid() {
var pageNumber = 1;
....
所以,如果您不想在调用updateGrid时重置pageNumber,您应该在其他地方创建pageNumber,如下所示
var pageNumber = ViewBag.page;
function updateGrid() {
....
您的页码将重置回1,因为每次调用updateGrid时,您都将其重置为ViewBag.page 换句话说,编译后的razor代码如下所示
function updateGrid() {
var pageNumber = 1;
....
所以,如果您不想在调用updateGrid时重置pageNumber,您应该在其他地方创建pageNumber,如下所示
var pageNumber = ViewBag.page;
function updateGrid() {
....
加载页面时,您正在将页码硬编码为ViewBag.page,该页码在页面加载时始终等于一 相反,您需要做的是在partialview中创建一个隐藏的输入,并将javascript代码放在主视图中 然后,当updateGrid函数被触发时,通过javascript查看空间视图,并找到页码隐藏字段中的值 切换到PagedList,使用ajax、分页和webgrids会容易得多。
加载页面时,您将把页码硬编码到ViewBag.page,这在页面加载时总是等于一 相反,您需要做的是在partialview中创建一个隐藏的输入,并将javascript代码放在主视图中 然后,当updateGrid函数被触发时,通过javascript查看空间视图,并找到页码隐藏字段中的值 切换到PagedList,使用ajax、分页和webgrids会容易得多。
但当我点击第2页时。。。。在控制器中,它正在执行ViewBag.page=2。。。并返回部分。。。之后,当我点击更新。。。为什么ViewBag.page=2???但是当我点击第2页时。。。。在控制器中,它正在执行ViewBag.page=2。。。并返回部分。。。之后,当我点击更新。。。为什么ViewBag.page=2???我不知道为什么这样做有效,而把它放到脚本中却没有。。这是代码,在updateGrid中,我刚刚通过JQueryIt获得了值。这可能是一个缓存问题,我总是尝试在外部js文件或主视图中而不是在局部视图中执行javascript。很高兴这对你有用。如果您需要更多的webgrid示例,请告诉我,我正在进行一些很酷的搜索、分页、页面大小和ajax webgrid驱动的视图。我不知道为什么这样做有效,而将其放在脚本中却没有。。这是代码,在updateGrid中,我刚刚通过JQueryIt获得了值。这可能是一个缓存问题,我总是尝试在外部js文件或主视图中而不是在局部视图中执行javascript。很高兴这对你有用。如果您需要更多webgrid示例,请告诉我,我正在进行一些很酷的搜索、分页、页面大小和ajax webgrid驱动的视图。