如何传递参数,从用的jqGrid到datapost控制器(使用MVC4和asp.net) [英] how can i pass parameter from jqgrid to controller with datapost (using MVC4 and asp.net )

查看:357
本文介绍了如何传递参数,从用的jqGrid到datapost控制器(使用MVC4和asp.net)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想通过从视图中一些了selectedValue:jqGrid的到控制器,我可以做到这一点与POST数据?请帮帮我
我有3个cascadind DropDownList的,我想这些了selectedValue过滤我网
我怎么可以传递参数??

  @model Project.Models.FRHEntities
@ {
    ViewBag.Title =;
}
@section功能{
    <节类=精选>
        < D​​IV 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>< /表>
        < D​​IV 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆