如何使用格式化程序将参数发送到操作:MVC 中 jqGrid 4.6.0 中的“showlink”
Posted
技术标签:
【中文标题】如何使用格式化程序将参数发送到操作:MVC 中 jqGrid 4.6.0 中的“showlink”【英文标题】:How to send Parameter to an action, using formatter: 'showlink' in jqGrid 4.6.0 in MVC 【发布时间】:2018-06-11 00:49:50 【问题描述】:我的 jqGrid 中有一个名为“CONTRACT_REQ_SUBJECT”的列。我想让它成为一个链接,重定向到另一个动作,并向该动作发送参数。我想从这个 jqgrid 的不同列中获取这个参数。当然我希望文本是我从数据库中获得的 CONTRACT_REQ_SUBJECT 的值。
这是我的代码:
name:'CONTRACT_REQ_SUBJECT',index:'CONTRACT_REQ_SUBJECT',edittype:'select' , formatter: 'showlink' , formatoptions: baseLinkUrl: '/Home/Steps_Details/' , idName: 'CONTRACT_REQ_SUBJECT' ,
一切正常,我只是无法将参数发送到操作。 也许它可以与“addParam:”一起使用,但我不知道如何使用它。
在此先感谢...
更新问题:
@Oleg 感谢您在 cmets 中的解决方案,但我无法解决这个问题。所以我决定用另一种方式来做,比如下面的代码:
name:'CONTRACT_REQ_SUBJECT',index:'CONTRACT_REQ_SUBJECT',edittype:'select' , formatter: 'showlink' , formatoptions: baseLinkUrl: '/Home/Steps_Details/' , idName: 'CONTRACT_REQ_SUBJECT' , addParam : "Contract_Req_Id= 123" ,
现在的问题是,我想将当前行的“CONTRACT_REQ_ID”的值发送给我的控制器,而不是 123(在我上面的代码中),但不知道该怎么做。
有没有办法将“CONTRACT_REQ_ID”保存到变量中,然后将变量作为参数发送给我的操作?
也许是这样的:
var myGrid = $('#list'),
selRowId = myGrid.jqGrid ('getGridParam', 'selrow'),
celValue = myGrid.jqGrid ('getCell', selRowId, 'CONTRACT_REQ_ID');
但我不知道将它放在我的代码中的什么位置。 我的代码是:
<script type="text/javascript">
$(document).ready(function ()
$('#list').jqGrid(
caption: "گزارش پیگیری قراردادها",
url: '@Url.Action("Get_Contracts_Steps","Home")',
datatype: 'json',
jsonReader:
root: "Rows",
page: "Page",
total: "Total",
records: "Records",
repeatitems: true,
userdata: "UserData",
id: "Vahed_Descript",
cell: "RowCells"
// , data: REQ_UNIQE: "REQ_UNIQE" ,
,
mtype: 'GET',
//columns names
colNames: [' عنوان واحد ',
' کد دبیرخانه ',
' شماره درخواست ',
' شرح درخواست ',
' مبلغ برآوردی ',
' تاریخ ثبت درخواست',
' تاریخ تایید مدیر اجرایی ',
' تاریخ تایید قائم مقام / معاونت ',
' تاریخ ارسال درخواست به تدارکات ',
' تاریخ اخذ استعلام ',
' تاریخ ارسال پاکات قیمت',
' تاریخ تایید بودجه- درخواست ',
' تاریخ بازگشایی پاکات',
'تاریخ تایید صورت جلسه استعلام ',
' تاریخ نامه احراز صلاحیت ',
' تاریخ اخذ مدارک ',
'تاریخ تهیه پیش نویس قرارداد ',
'تاریخ ارسال پیش نویس به دفتر IT',
'تاریخ تایید پیش نویس توسط معاون',
'تاریخ تایید پیش نویس توسط مدیر',
' تاریخ ثبت پیش نویس در سامانه کتاب ما ',
' تاریخ تایید بودجه-پیش نویس ',
'تاریخ ارسال به ممیزی ',
'تاریخ تایید ممیزی',
'تاریخ تهیه نسخ قرارداد',
'تاریخ امضای شرکت',
'تاریخ امضاو ابلاغ قرارداد',
'شماره قرارداد ',
'',
' نمایش جزییات '
],
//columns model
colModel: [
name: 'DESCRIPT', index: 'DESCRIPT', align: 'right' ,
name: 'DABIR_VAHED_CODE', index: 'DABIR_VAHED_CODE', align: 'right' ,
name: 'CONTRACT_REQ_ID', index: 'CONTRACT_REQ_ID', align: 'right' ,
name: 'CONTRACT_REQ_SUBJECT', index: 'CONTRACT_REQ_SUBJECT', edittype: 'select'
, formatter: 'showlink'
, formatoptions:
baseLinkUrl: '/Home/Steps_Details/', addParam: '&CONTRACT_REQ_ID=123' , idName: 'CONTRACT_REQ_SUBJECT'
,
name: 'AMNT_TOT_ESTIMATE', index: 'AMNT_TOT_ESTIMATE', align: 'center', formatter: 'currency',
formatoptions:
decimalSeparator: '.', thousandsSeparator: ',', decimalPlaces: 0
,
name: 'Req_Creation_Date', index: 'Req_Creation_Date', align: 'center' ,
name: 'Req_Exec_Confirm', index: 'Req_Exec_Confirm', align: 'center' ,
name: 'Req_Moavenat_Cnfrm', index: 'Req_Moavenat_Cnfrm', align: 'center' ,
name: 'SendToTadarokat', index: 'SendToTadarokat', align: 'center' ,
name: 'GotEstelam', index: 'GotEstelam', align: 'center' ,
name: 'SendPricePockets', index: 'SendPricePockets', align: 'center' ,
name: 'Req_Budg_Cnfrm', index: 'Req_Budg_Cnfrm', align: 'center' ,
name: 'OpenPockets', index: 'OpenPockets', align: 'center' ,
name: 'ConfirmedEstelamSuratJalase', index: 'ConfirmedEstelamSuratJalase', align: 'center' ,
name: 'EhrazSalahiatConfirmed', index: 'EhrazSalahiatConfirmed', align: 'center' ,
name: 'GotDocs', index: 'GotDocs', align: 'center' ,
name: 'Pre_Contract_Prepared', index: 'Pre_Contract_Prepared', align: 'center' ,
name: 'sendprecontrtoIT', index: 'sendprecontrtoIT', align: 'center' ,
name: 'PreContrConfirmed_Moaven', index: 'PreContrConfirmed_Moaven', align: 'center' ,
name: 'PreContrConfirmed_Modir', index: 'PreContrConfirmed_Modir', align: 'center' ,
name: 'SavePreCntrInKetabMa', index: 'SavePreCntrInKetabMa', align: 'center' ,
name: 'Pre_BudgtCnfrm', index: 'Pre_BudgtCnfrm', align: 'center' ,
name: 'SendToMomayeziDate', index: 'SendToMomayeziDate', align: 'center' ,
name: 'Pre_MomayzCnfrm', index: 'Pre_MomayzCnfrm', align: 'center' ,
name: 'ContrVersionsPreparedDate', index: 'ContrVersionsPreparedDate', align: 'center' ,
name: 'CompanySignedVersionsDate', index: 'CompanySignedVersionsDate', align: 'center' ,
name: 'ContrSignedDate', index: 'ContrSignedDate', align: 'center' ,
name: 'CONTR_NO', index: 'CONTR_NO', align: 'center' ,
name: 'REQ_UNIQE', index: 'REQ_UNIQE', width: 1, align: 'left', hidden: true ,
name: 'Link', formatter: function (cellvalue, options, rowObject)
var x = '@html.ActionLink("جزییات", "Steps_Details", "Home", new REQ_UNIQE = "id" , new @style = "color:Blue;font-weight:bold;" )';
return x.replace("id", rowObject[28]);
, align: 'center', width: 150,editurl: ' / Home / Steps_Details / '
,
],
pager: $('#pager'),
rowNum: 300,
rowList: [10, 20, 40, 60, 80, 100, 150, 200, 300, 400, 500, 600, 800, 1000, 1200],
sortname: 'CONTRACT_REQ_SUBJECT',
sortorder: 'asc',
viewrecords: true,
altRows: true,
shrinkToFit: false ,
width: 'auto',
height: '300px',
hidegrid: false,
direction: "rtl",
gridview: true,
rownumbers: true,
footerrow: true,
userDataOnFooter: true,
scrollerbar: true,
loadComplete: function()
$("tr.jqgrow:odd").css("background", "#E0E0E0");
,
loadError: function(xhr, st, err)
jQuery("#rsperror").html("Type: " + st + "; Response: " + xhr.status + " " + xhr.statusText);
, loadonce: true
)
.jqGrid('navGrid', "#pager",
edit: false, add: false, del: false, search: true, refresh: true
)
.jqGrid('navButtonAdd', '#pager',
caption: "", buttonicon: "ui-icon-print", title: "خروجي پي دي اف",
onClickButton: function ()
$("#list").jqGrid('excelExport', url: '@Url.Action("Get_Contracts_Steps", "Home")' );
)
function toolbarSearching()
$("#list").jqGrid('filterToolbar',
autosearch: true,
stringResult: false,
searchOnEnter: true,
defaultSearch: "cn",
);
;
$("#list").jqGrid('filterToolbar',
autosearch: true,
stringResult: false,
searchOnEnter: true,
defaultSearch: "cn",
);
var maxNameLength = 10;
$("input[id=gs_name]").blur(function ()
var $th = $(this).closest(".ui-search-toolbar>th"),
colIndex = $th[0].cellIndex,
$colHeader = $th.parent().siblings(".ui-jqgrid-labels").children("th").eq(colIndex),
colHeaderText = $colHeader.children("div").text();
if (this.value.length > maxNameLength)
alert(colHeaderText + ' is longer than ' + maxNameLength + ' characters.');
);
$('#gs_invdate').datepicker(
changeMonth: true,
changeYear: true,
showButtonPanel: true
);
)
【问题讨论】:
请包括总是信息,您使用的jqGrid的版本以及jqGrid的fork (@987654321 @、商业 Guriddo jqGrid JS 或版本 /Home/Steps_Details/aaa,其中aaa
是同一行的'CONTRACT_REQ_ID'
列中的值。如果使用我开发的“免费 jqGrid”分支,我可以轻松展示如何做到这一点。
@Oleg 非常感谢您的回答。正如你上面提到的,我已经编辑了我的问题的标题。我正在使用 jqgrid 4.6.0 。正如你告诉我的那样,我尝试了 /Home/Steps_Details/aaa (在这个版本中),但它没有用。你能告诉我我该怎么做吗?谢谢
jqGrid 4.6.0 已经很老了(快 4 年了),很长一段时间都不支持它。复古版的formatter: 'showlink'
不允许您创建带有/Home/Steps_Details/aaa
之类的URL 的链接,其中aaa
不是const。如果你真的必须使用旧的 jqGrid 版本,你必须使用custom formatter。
我建议您考虑升级到免费 jqGrid 的当前版本 (4.15.2)。您可以看到 here 在 4.6.0 之后发布了近 2000 个提交。我尝试保持与旧版本的 jqGrid 兼容的免费 jqGrid 叉。因此,您可能不需要在迁移开始时更改 JavaScript。之后,我建议您阅读 the article 一些 wiki 文章和自述文件以了解新功能。
我现在出差,一整天都在客户那里。我会试着在晚上从酒店读你的问题......
【参考方案1】:
我是这样做的:
name: 'CONTRACT_REQ_SUBJECT', index: 'CONTRACT_REQ_SUBJECT', edittype: 'select'
, formatter: 'showlink' , formatoptions:
baseLinkUrl: '/Home/Steps_Details/', addParam: '&REQ_UNIQE=' ,
idName: 'CONTRACT_REQ_SUBJECT'
【讨论】:
以上是关于如何使用格式化程序将参数发送到操作:MVC 中 jqGrid 4.6.0 中的“showlink”的主要内容,如果未能解决你的问题,请参考以下文章