Syncfusion Datagrid를 사용하는 MVC4 응용 프로그램이 있습니다. 보기에 나는 JQuery와 기능을 실행하는 버튼 (xfrButton)가 :JQuery 함수가 Syncfusion Datagrid를 사용하여 새보기를 시작하지 못함
$(document).ready(function() {
// Handle the clicking of the Request Transfer button
$('#xfrButton').click(function() {
// Initialize object to hold data grid
var GridObj = $find("AssetGrid")
// Initialize object to hold the filters the user selected in the grid
var gridData = Sys.Serialization.JavaScriptSerializer.serialize(GridObj._filters);
// Call controller action to process selected filters passing the filters variable (gridData)
$.post('<%: ResolveUrl("~/Step05_AssetsValidBUActiveCRS/RequestToTransfer/")%>', { select: gridData },
function (data) {
// If successful, call the Transfer Request View
var targetModel = Sys.Serialization.JavaScriptSerializer.serialize(data);
var targetURL = '~/Step05_TransferRequest/Index/?transferVM=' + targetModel.toString();
// var targetURL = '~/Step05_TransferRequest/Index/';
//TODO: Figure out a way to launch a new view upon success return from above statement
// Must pass the data returned from the above .post to the new controller action
// Current process just stays on the existing screen. Neither of the following work:
$(this).load(targetModel);
// window.location.href(targetURL);
}
, "json")
})
})
.post에서/Step05_AssetsValidBUActiveCRS/RequestToTransfer에 대한 호출이 마법처럼 작동하고 반환 된 데이터에 대한 데이터를 포함하는 뷰 모델입니다 내가 시작하고 싶은 다음보기. 유일한 문제는 다음 뷰/액션 (이 경우 targetURL의 URL)을 시작하려고 할 때 상관없이 현재보기 및 DataGrid가 브라우저에서 그대로 유지된다는 것입니다.
xfrButton 단추를 다시 클릭하면 .post 작업을 다시 수행하지만 targetURL 값을 실행하지 않는 위의 루틴이 실행됩니다. 왜 jquery가 새로운 관점을 시작하지 않을까요?
<p>
<input id="xfrButton" type="submit" value="Request Transfer To" />
</p>
<%=Html.Syncfusion().Grid<AMSUtilityMVC4.ViewModels.Step05ListAssetsValidBUActiveCRSViewModel>("AssetGrid")
.Datasource(Model)
.EnableFiltering() /*Filtering Enabled*/
.EnableSorting() /*Sorting Enabled*/
.EnablePaging() /*Paging Enabled*/
.AllowResizing(true)
.Scrolling(scroll => scroll.Height(300).Width(1050))
.EnableScrolling()
.AllowSelection(true).RowsSelectionMode(RowsSelectionMode.Toggle)
.Column(cols =>
{
cols.Add(c => c.REMS).HeaderText("REMS").Width(75);
cols.Add(c => c.companyName).HeaderText("Company").Width(150);
cols.Add(c => c.LVID).HeaderText("LVID").Width(75);
cols.Add(c => c.entity).HeaderText("BU").Width(75);
cols.Add(c => c.locationDescription).HeaderText("Location Description").Width(150);
cols.Add(c => c.assetNumber).HeaderText("Asset No").Width(100);
cols.Add(c => c.majorCategory).HeaderText("Major Cat").Width(150);
cols.Add(c => c.minorCategory).HeaderText("Minor Cat").Width(150);
cols.Add(c => c.FACode).HeaderText("FA Code").Width(75);
cols.Add(c => c.description).HeaderText("Title").Width(150);
cols.Add(c => c.cost).HeaderText("Cost").TextAlign(Syncfusion.Mvc.Grid.TextAlignment.Right).Format("{0:C}").Width(70);
cols.Add(c => c.nbv).HeaderText("NBV").Width(60);
cols.Add(c => c.GOC).HeaderText("GOC").Width(75);
cols.Add(c => c.FEIN).HeaderText("FEIN").Width(75);
cols.Add(c => c.datePlacedInService).HeaderText("In Service").Width(150);
cols.Add(c => c.vendorName).HeaderText("Vendor Name").Width(150);
cols.Add(c => c.accountingKey).HeaderText("Acct Key").Width(150);
cols.Add(c => c.locationKey).HeaderText("Location Key").Width(150);
cols.Add(c => c.state).HeaderText("State");
})
.ClientSideEvents(e => e.OnToolbarClickEvent("OnToolbarClickEvent"))
.ToolBar(tools =>
{
// Adding the custom toolbar items.
// Add(customItemtitle, customItemcaption, customItemCssClass)
tools.Add(GridToolBarItems.ExcelExport, "Excel Export")
.Add(GridToolBarItems.PDFExport, "PDF Export")
.Add(GridToolBarItems.Custom, "Transfer Request To", "RequestTransfer");
})
.Mappers(map =>{map.ExportExcelAction("GridExportToExcel")
.ExportPdfAction("GridExportToPDF");})
%>
대신 $ (이) .load (targetModel)``$를 사용해보십시오`사용
("correctselector : 참고로
, 여기에 버튼과 함께보기에 Syncfusion 코드는 ") .load (targetURL)'. 그것은 전체 페이지의 경우 선택기로 $ (document.documentElement)를 사용합니다 – Bharath