如何传递参数,从用的jqGrid到datapost控制器(使用MVC4和asp.net) [英] how can i pass parameter from jqgrid to controller with datapost (using MVC4 and asp.net )
问题描述
我想通过从视图中一些了selectedValue:jqGrid的到控制器,我可以做到这一点与POST数据?请帮帮我
我有3个cascadind DropDownList的,我想这些了selectedValue过滤我网
我怎么可以传递参数??
@model Project.Models.FRHEntities
@ {
ViewBag.Title =;
}
@section功能{
<节类=精选>
< DIV CLASS =内容包装>
< hgroup类=标题>
< H1> @ ViewBag.Title< / H1>
< H2> @ ViewBag.Message< / H>
< / hgroup> < / DIV>
< /节>
}
@ Styles.Render(〜/内容/ jquery.jqGrid / ui.jqgrid.css)
@ Styles.Render(〜/内容/布利策/ jQuery的-UI-1.10.3.custom.css)
<脚本的src =@ Url.Content(〜/脚本/ jQuery的-2.0.3.min.js)TYPE =文/ JavaScript的>< / SCRIPT>
<脚本的src =@ Url.Content(〜/脚本/ jquery.jqGrid.min.js)TYPE =文/ JavaScript的>< / SCRIPT>
<脚本的src =@ Url.Content(〜/脚本/国际化/ grid.locale-fr.js)TYPE =文/ JavaScript的>< / SCRIPT>
<脚本的src =@ Url.Content(〜/内容/ JS / UI /缩小的/ jquery.ui.autocomplete.min.js)TYPE =文/ JavaScript的>< / SCRIPT>
<脚本的src =@ Url.Content(〜/内容/ JS / UI /缩小的/ jquery.ui.datepicker.min.js)TYPE =文/ JavaScript的>< / SCRIPT>
@section脚本{
@ Scripts.Render(〜/包/ jqueryval) @ Scripts.Render(〜/包/ jQueryUI的)
@ Styles.Render(〜/内容/主题/基/ CSS) <脚本类型=文/ JavaScript的>
$(文件)。就绪(函数(){
$(#多波)。日期选择器({
changeMonth:真实,
changeYear:真
});
});
< / SCRIPT> <脚本类型=文/ JavaScript的>
$(文件)。就绪(函数(){
$(#Dob2)。日期选择器({
changeMonth:真实,
changeYear:真
});
});
< / SCRIPT>
}
< H2> @ ViewBag.Message< / H>
<表样式=宽度:100%; >
< TR唱段原子=FALSE>
< TD>首演日期:LT; / TD>
< TD><输入ID =多波类型=文本/>< / TD>
< / TR> &所述; TR>
< TD>鳍日期:LT; / TD>
< TD><输入ID =Dob2类型=文本/>< / TD>
< / TR> &所述; TR>
&所述; TD>业务范围:其中; / TD>
< TD> @ Html.DropDownList(Activites(的SelectList)ViewBag.SelectList,selectionnez - 新{ID =Activites})LT; / TD>
< / TR> &所述; TR>
< TD>服务:其中; / TD>
< TD><选择一个id =服务NAME =服务><选项> Selectionnez - < /选项>< /选择>< / TD>
< / TR> &所述; TR>
< TD>客户:LT; / TD>
< TD><选择一个id =客户NAME =客户><选项> Selectionnez - < /选项>< /选择>< / TD>
< / TR> &所述; TR>
< TD><输入类=按钮ID =ButtonSubmit类型=按钮值=Visualiser的的onclick =JavaScript的:afficher_cacher('关系')/>< / TD> < TD><输入类=按钮ID =出口商类型=按钮值=出口商/>< / TD>
< / TR> < /表>
<表ID =activitelist>< /表>
< DIV ID =activitelist_pager>< / DIV> <脚本类型=文/ JavaScript的>
<! -
$(文件)。就绪(函数(){
$('#Activites')改变(函数(){ChangeActivite();});
$('#服务')改变(函数(){ChangeService();});
$('#客户)改变(函数(){ChangeClient();});
$('#activitelist')隐藏()。
。$('#ButtonSubmit')隐藏()点击(函数(){秀();}); });
功能ChangeClient(){
VAR了selectedValue = $('#Activites选项:选择)VAL();
VAR selectedValue2 = $('#Services选项:选择)VAL();
VAR selectedValue3 = $('#客户端选项:选择)。VAL(); 如果($ .trim(了selectedValue)。长度大于0){
$('#ButtonSubmit)显示()。
}
其他{
$('#ButtonSubmit')隐藏()。
$('#ClientInfo客户端),空()。
}
}
功能ChangeActivite(){
VAR了selectedValue = $('#Activites选项:选择)VAL();
如果($ .trim(了selectedValue)。长度大于0){
// GetClients(了selectedValue);
GetServices(了selectedValue);
}
}
功能ChangeService(){ VAR了selectedValue = $('#Activites选项:选择)VAL();
如果($ .trim(了selectedValue)。长度大于0) VAR selectedValue2 = $('#Services选项:选择)VAL();
如果($ .trim(了selectedValue)。长度大于0){
// GetClients(了selectedValue);
GetClients(selectedValue,则selectedValue2);
}
}
功能GetServices(activiteID){
$阿贾克斯({
网址:'@ Url.Action(服务,显示),
数据:{activiteID:activiteID},
类型:'后',
缓存:假的,
异步:假的,
数据类型:JSON,
成功:功能(数据){
如果(data.length大于0){
$('#服务'),空();
$('#服务')追加。($('<选项>< /选项>')。VAL('')文本('Selectionnez--'));
$。每个(数据,功能(I,项目){
$('#服务')追加。($('<选项>< /选项>')VAL(item.Key)的.text(item.Value));
});
}
}
});
}
功能GetClients(activiteID,服务){
$阿贾克斯({
网址:'@ Url.Action(客户,显示),
数据:{activiteID:activiteID,服务:服务},
类型:'后',
缓存:假的,
异步:假的,
数据类型:JSON,
成功:功能(数据){
如果(data.length大于0){
$('#客户)空();
$('#客户')追加。($('<选项>< /选项>')。VAL('')文本('Selectionnez--'));
$。每个(数据,功能(I,项目){
$('#客户')追加。($('<选项>< /选项>')。VAL(item.Key)的.text(item.Value));
});
}
}
});
} 功能显示(){
$(#activitelist)。jqGrid的({ 网址:'@ Url.Action(LinqGridData,显示),
POSTDATA:{激活Google:1-COURRIER参赛者},
数据类型:JSON,
MTYPE:'POST',
colNames:业务范围,服务,客户,卷,三角洲,临时工中沙,临时工总],
colModel:
[ {名:业务范围,索引:业务范围},
{名:服务,索引:服务},
{名客户,索引:客户端},
{名:卷索引:VOL},
{名:delta_索引:delta_},
{名:tempsmoy_索引:tempsmoy_},
{名:tempstot索引:tempstot}, ]
寻呼机:$('#activitelist_pager'),
的rowNum:25,
rowList:[5,10,25,50],
高度:'自动',
宽度:'800',
sortname:激活Google',
排序顺序:ASC
}); $(#activitelist)的jqGrid('navGrid','#activitelist_pager',{补充:假的,编辑:假的,德尔:假的,搜索:假})。
}< / SCRIPT>
这是操作方法:
公众的ActionResult LinqGridData(字符串激活Google,串SIDX,串SORD,诠释页,诠释行)
{
VAR背景=新FRHEntities();
INT的PageIndex = Convert.ToInt32(页) - 1;
INT的pageSize =行;
INT总记录= context.productivites.Count();
INT总页数=(int)的Math.Ceiling((浮点)总记录/(浮动)的pageSize); VAR jsonData =新
{
总=总页数,
页=页,
记录=总记录, 行= frh.productivites.AsEnumerable()式。(N =>n.Activité==激活Google)。选择(N =>新建{ID =n.activitéID,电池=新的String [] {n.Activité,正.Service.ToString(),n.action,n.vol.ToString(),n.delta_.ToString(),n.tempsmoy_.ToString(),n.tempstot_.ToString()}})。ToArray的()
}; 返回JSON(jsonData,JsonRequestBehavior.AllowGet);
}
您使用的是整型参数激活Google
公众的ActionResult LinqGridData(INT激活Google,串SIDX,串SORD,诠释页,诠释行)
{
和传递一个字符串值的动作。
POSTDATA:{激活Google:1-COURRIER参赛者},
可能是问题。
编辑:
在您的操作使用 JqGridRequest
对象来访问请求参数:
的[AcceptVerbs(HttpVerbs.Post)
公众的ActionResult客户(JqGridRequest要求,串激活Google){
....
}
你还可以使用以下属性访问jqGrid的请求参数:
request.SortingName
request.SortingOrder
request.PageIndex
request.PagesCount
RecordsCount
I want to pass some selectedValue from view : jqgrid to controller, can i do that with post data? please help me I have 3 cascadind dropdownlist and i want to filter my grid with those selectedValue how can I pass parameters ??
@model Project.Models.FRHEntities
@{
ViewBag.Title = "";
}
@section featured {
<section class="featured">
<div class="content-wrapper">
<hgroup class="title">
<h1>@ViewBag.Title</h1>
<h2>@ViewBag.Message</h2>
</hgroup>
</div>
</section>
}
@Styles.Render("~/Content/jquery.jqGrid/ui.jqgrid.css")
@Styles.Render("~/Content/blitzer/jquery-ui-1.10.3.custom.css")
<script src="@Url.Content("~/Scripts/jquery-2.0.3.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.jqGrid.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/i18n/grid.locale-fr.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Content/js/ui/minified/jquery.ui.autocomplete.min.js")" type="text/javascript" ></script>
<script src="@Url.Content("~/Content/js/ui/minified/jquery.ui.datepicker.min.js")" type="text/javascript" ></script>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/jqueryui")
@Styles.Render("~/Content/themes/base/css")
<script type="text/javascript">
$(document).ready(function () {
$("#Dob").datepicker({
changeMonth: true,
changeYear: true
});
});
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#Dob2").datepicker({
changeMonth: true,
changeYear: true
});
});
</script>
}
<h2>@ViewBag.Message</h2>
<table style="width: 100%;" >
<tr aria-atomic="False">
<td>date début :</td>
<td><input id="Dob" type="text" /></td>
</tr>
<tr>
<td>date fin :</td>
<td><input id="Dob2" type="text" /></td>
</tr>
<tr>
<td>Activité : </td>
<td>@Html.DropDownList("Activites", (SelectList)ViewBag.SelectList, "selectionnez --", new { id = "Activites" }) </td>
</tr>
<tr>
<td>Service :</td>
<td><select id="Services" name="services" ><option>Selectionnez --</option></select></td>
</tr>
<tr>
<td>Client :</td>
<td><select id="Clients" name="clients"><option>Selectionnez -- </option></select></td>
</tr>
<tr>
<td><input class ="button" id="ButtonSubmit" type="button" value="Visualiser" onclick="javascript: afficher_cacher('rapport')" /></td>
<td><input class="button" id="Exporter" type="button" value="Exporter" /></td>
</tr>
</table>
<table id="activitelist"></table>
<div id="activitelist_pager"></div>
<script type="text/javascript">
<!--
$(document).ready(function () {
$('#Activites').change(function () { ChangeActivite(); });
$('#Services').change(function () { ChangeService(); });
$('#Clients').change(function () { ChangeClient(); });
$('#activitelist').hide();
$('#ButtonSubmit').hide().click(function () { show(); });
});
function ChangeClient() {
var selectedValue = $('#Activites option:selected').val();
var selectedValue2 = $('#Services option:selected').val();
var selectedValue3 = $('#Clients option:selected').val();
if ($.trim(selectedValue).length > 0) {
$('#ButtonSubmit').show();
}
else {
$('#ButtonSubmit').hide();
$('#ClientInfo').empty();
}
}
function ChangeActivite() {
var selectedValue = $('#Activites option:selected').val();
if ($.trim(selectedValue).length > 0) {
// GetClients(selectedValue);
GetServices(selectedValue);
}
}
function ChangeService() {
var selectedValue = $('#Activites option:selected').val();
if ($.trim(selectedValue).length > 0)
var selectedValue2 = $('#Services option:selected').val();
if ($.trim(selectedValue).length > 0) {
// GetClients(selectedValue);
GetClients(selectedValue,selectedValue2);
}
}
function GetServices(activiteID) {
$.ajax({
url: '@Url.Action("Services", "Display")',
data: { activiteID: activiteID },
type: 'post',
cache: false,
async: false,
dataType: 'json',
success: function (data) {
if (data.length > 0) {
$('#Services').empty();
$('#Services').append($('<option></option>').val('').text('Selectionnez--'));
$.each(data, function (i, item) {
$('#Services').append($('<option></option>').val(item.Key).text(item.Value));
});
}
}
});
}
function GetClients(activiteID,service) {
$.ajax({
url: '@Url.Action("Clients", "Display")',
data: { activiteID: activiteID , service : service},
type: 'post',
cache: false,
async: false,
dataType: 'json',
success: function (data) {
if (data.length > 0) {
$('#Clients').empty();
$('#Clients').append($('<option></option>').val('').text('Selectionnez--'));
$.each(data, function (i, item) {
$('#Clients').append($('<option></option>').val(item.Key).text(item.Value));
});
}
}
});
}
function show() {
$("#activitelist").jqGrid({
url: '@Url.Action("LinqGridData", "Display")',
postData: { activite : "1-COURRIER ENTRANT" },
datatype: 'json',
mtype: 'POST',
colNames: ["Activité", "Service", "Client", "volume", "delta", "temps moyen", "temps total"],
colModel:
[
{ name: "Activité", index: "Activité" },
{ name: "Service", index: "Service" },
{ name: "Client", index: "Client" },
{ name: "vol", index: "vol" },
{ name: "delta_", index: "delta_" },
{ name: "tempsmoy_", index: "tempsmoy_" },
{ name: "tempstot", index: "tempstot" },
],
pager: $('#activitelist_pager'),
rowNum: 25,
rowList: [5, 10, 25, 50],
height: 'auto',
width: '800',
sortname: 'Activite',
sortorder: "ASC"
});
$("#activitelist").jqGrid('navGrid', '#activitelist_pager', { add: false, edit: false, del: false, search: false });
}
</script>
this is action method :
public ActionResult LinqGridData(string activite , string sidx, string sord, int page, int rows) {
var context = new FRHEntities();
int pageIndex = Convert.ToInt32(page) - 1;
int pageSize = rows;
int totalRecords = context.productivites.Count();
int totalPages = (int)Math.Ceiling((float)totalRecords / (float)pageSize);
var jsonData = new
{
total = totalPages,
page = page,
records = totalRecords,
rows = frh.productivites.AsEnumerable().Where(n => n.Activité == activite).Select(n => new { id = n.activitéID, cell = new string[] { n.Activité, n.Service.ToString(), n.action, n.vol.ToString(), n.delta_.ToString(), n.tempsmoy_.ToString(), n.tempstot_.ToString() } }).ToArray()
};
return Json(jsonData, JsonRequestBehavior.AllowGet);
}
You are using an integer parameter activite
public ActionResult LinqGridData(int activite , string sidx, string sord, int page, int rows)
{
and passing a string value to the action.
postdata: { activite: "1-COURRIER ENTRANT" },
Probably that is the issue.
Edit:
In your action use JqGridRequest
object to access request parameters:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Customers(JqGridRequest request, string activite )
{
....
}
And you can access the jqgrid request parameters using the following properties:
request.SortingName
request.SortingOrder
request.PageIndex
request.PagesCount
RecordsCount
这篇关于如何传递参数,从用的jqGrid到datapost控制器(使用MVC4和asp.net)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!