Jquery 选项卡更改时保留局部视图的状态
我正在使用JQuery选项卡,在选项卡2中我设计了一个搜索页面,该页面对8个字段进行动态搜索,并在网格上显示结果,我正在使用局部视图设计选项卡2的设计。 我遇到的问题是,当我从一个选项卡切换到另一个选项卡时,我会丢失搜索结果。 有人能帮我吗 在SearchContract选项卡中,我可以使用fixheadtable网格按编号、日期、部门等搜索合同,并在同一部分视图中显示搜索结果 选择搜索条件并进行搜索后,结果将显示在网格中。但一旦我打开一个标签,回到同一个标签,我就失去了我的网格结果和搜索条件 任何帮助都将不胜感激Jquery 选项卡更改时保留局部视图的状态,jquery,asp.net-mvc,jquery-ui,Jquery,Asp.net Mvc,Jquery Ui,我正在使用JQuery选项卡,在选项卡2中我设计了一个搜索页面,该页面对8个字段进行动态搜索,并在网格上显示结果,我正在使用局部视图设计选项卡2的设计。 我遇到的问题是,当我从一个选项卡切换到另一个选项卡时,我会丢失搜索结果。 有人能帮我吗 在SearchContract选项卡中,我可以使用fixheadtable网格按编号、日期、部门等搜索合同,并在同一部分视图中显示搜索结果 选择搜索条件并进行搜索后,结果将显示在网格中。但一旦我打开一个标签,回到同一个标签,我就失去了我的网格结果和搜索条件
$("#HrTabStripContainer").tabs({
create: OnCreateDefaultTabHandler,
beforeActivate: BeforeActivateTabHandler,
cache:true,
active: 0,
disabled : [2]
});
OnCreateDefaultTabHandler = function () {
LoadNewContract();
LoadSearchContract();
//disable others
}
BeforeActivateTabHandler = function (event, ui) {
switch ($(ui.newTab).index()) {
case 0:
LoadNewContract()
break;
case 1:
LoadSearchContract();
break;
case 2:
LoadEditContract();
break;
default:
//ToDo: Log error...low priority
}
}
var LoadSearchContract = function () {
$("#HrTabStripContainer").tabs({ disabled: [2] });
$("#_SearchContract").load("Contracts/_SearchContract");
};
在我使用的控制器中
$(document).ready(function () {
$("#contractNumber").val("");
var btnFindContract = $("#btnFindContract");
fixedTblFindEmployee();
// tblScrollFindEmployee();
btnFindContract.on("click", (function (e) {
e.preventDefault();
$("#findCntrctTable tbody").empty();
searchContract();
}));
function searchContract() {
var searchCriteria = {
ContractNBR: $("#srchCntrctNbr").val(),
RequestingOfficeDistrict: $("#srchofficeDist").val(),
Contractor: $("#srchCntrctr").val(),
SPNBR: $("#SP").val(),
Contract_Stat: $("#srchCntrctStatus option:selected").text(),
ContractType: $("#srchCntrctType option:selected").text(),
PayableReceivable: $("#srchPayRec option:selected").text(),
FromDate: $('#srchReqStrtDt').val(),
ToDate: $('#srchReqEndDt').val(),
}
$.ajax({
url: "Contracts/LoadContractList",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: { 'searchCriteria': JSON.stringify(searchCriteria) },
cache: false
}).done(function (data, e) {
writetable(data);
});
};
function writetable(data) {
var tableOutline = '';
for (var i = 0; i < data.length; i++) {
var id = 'row' + data[i].ContractNumber;
tableOutline = tableOutline + '<tr id="row_' + data[i].ContractNumber + '" onclick="getCntrctNbr(this,' + data[i].ContractNumber + ')"><td><a>';
tableOutline = tableOutline + data[i].ContractNumber + '</a></td><td>' + data[i].RequestorName + '</td><td>' + data[i].RequestingOffDisct + '</td><td>' + formatJSONDate(data[i].RequestedDate) + '</td><td>' + data[i].ContractStatus + '</td><td>' + formatCurrency(data[i].EstimateContractCost) + '</td><td>' + data[i].ContractType + '</td><td>' + data[i].PayReceivable + '</td></tr>';
}
tableOutline = tableOutline;
$('#findCntrctTable').append(tableOutline);
$('#findCntrctTable').show();
}
[HttpGet]
public ActionResult _SearchContract()
{
var model = new SearchContractModel();
model.SelPayRec = null;
model.srchPayRec = ViewDataTasks.GetPayableReceivable();
model.srchCntrctType = ViewDataTasks.GetContractTypes();
model.srchCntrctStatus = ViewDataTasks.getContractStatus();
return PartialView(model);
}
从局部来看,我正在使用
$(document).ready(function () {
$("#contractNumber").val("");
var btnFindContract = $("#btnFindContract");
fixedTblFindEmployee();
// tblScrollFindEmployee();
btnFindContract.on("click", (function (e) {
e.preventDefault();
$("#findCntrctTable tbody").empty();
searchContract();
}));
function searchContract() {
var searchCriteria = {
ContractNBR: $("#srchCntrctNbr").val(),
RequestingOfficeDistrict: $("#srchofficeDist").val(),
Contractor: $("#srchCntrctr").val(),
SPNBR: $("#SP").val(),
Contract_Stat: $("#srchCntrctStatus option:selected").text(),
ContractType: $("#srchCntrctType option:selected").text(),
PayableReceivable: $("#srchPayRec option:selected").text(),
FromDate: $('#srchReqStrtDt').val(),
ToDate: $('#srchReqEndDt').val(),
}
$.ajax({
url: "Contracts/LoadContractList",
contentType: "application/json; charset=utf-8",
dataType: 'json',
data: { 'searchCriteria': JSON.stringify(searchCriteria) },
cache: false
}).done(function (data, e) {
writetable(data);
});
};
function writetable(data) {
var tableOutline = '';
for (var i = 0; i < data.length; i++) {
var id = 'row' + data[i].ContractNumber;
tableOutline = tableOutline + '<tr id="row_' + data[i].ContractNumber + '" onclick="getCntrctNbr(this,' + data[i].ContractNumber + ')"><td><a>';
tableOutline = tableOutline + data[i].ContractNumber + '</a></td><td>' + data[i].RequestorName + '</td><td>' + data[i].RequestingOffDisct + '</td><td>' + formatJSONDate(data[i].RequestedDate) + '</td><td>' + data[i].ContractStatus + '</td><td>' + formatCurrency(data[i].EstimateContractCost) + '</td><td>' + data[i].ContractType + '</td><td>' + data[i].PayReceivable + '</td></tr>';
}
tableOutline = tableOutline;
$('#findCntrctTable').append(tableOutline);
$('#findCntrctTable').show();
}
你能解释一下失去我的搜索结果是什么意思吗。这些结果是什么?结果在哪里?是特定选项卡上的结果,还是与选项卡小部件分离的元素上的结果?您的合同/合同行动中发生了什么?其他选项卡上发生了什么?您使用的jQueryUI版本是什么?您可能正在使用。每次切换选项卡时都会从服务器重新加载$\u SearchContract.loadContracts//u SearchContract;所以你的内容将被重置。但我已经在OnCreateDefaultTabHandler和BeforeActiveTabHandlerRight期间在LoadSearchContract函数中进行了操作,它会重新加载页面,这是你不希望发生的。一旦它重新加载,我就失去了我搜索的所有数据。我需要保留价值。