【问题标题】:How to pass parameter to jqgrid from another page如何从另一个页面将参数传递给jqgrid
【发布时间】:2013-07-10 06:23:22
【问题描述】:

我有报告名称的动态按钮,每次用户单击按钮时,它都会显示适用于所有报告的搜索字段(开始日期,结束日期),所有报告都有不同的页面显示网格,现在如何传递参数并打开报表的相应页面并加载 jqgrid。我一直将这个传递参数存入“OnlineSales”页面,然后加载网格。提前感谢您的帮助!

单击搜索按钮后,调用 OnlineSales 页面并传递参数然后在网格中显示数据的语法是什么。

$('#SearchButton').click(function () {
            var _StartDate = $("#StartDate").val();
            var _EndDate = $("#EndDate").val();
});

使用参数调用 OnlineSales 视图

@{
    ViewBag.Title = "OnlineSales";
}

@*GRID*@
    <div id="table" class="table">
        <table id="List" class="scroll" cellpadding="0" cellspacing="0"></table>
        <div id="Pager" class="scroll" style="text-align:center;"></div>
    </div>
@*GRID*@

<script type="text/javascript">
jQuery(document).ready(function () {

        jQuery("#List").jqGrid({
            url: 'local',
            postData: { start_date: '', end_date: ''},
            datatype: "json",
            mtype: 'GET',
            colNames: [
                  'First Name',
                  'Middle Name',
                  'Last Name',
                  'Email',
                  'Mobile Number'],
            colModel: [
                  { name: 'FirstName', index: 'FirstName', width: 200, align: 'left' },
                  { name: 'MiddleName', index: 'MiddleName', width: 200, align: 'left' },
                  { name: 'LastName', index: 'LastName', width: 150, align: 'left' },
                  { name: 'Email', index: 'Email', width: 150, align: 'left' },
                  { name: 'MobileNumber', index: 'MobileNumber', width: 80, align: 'left' }],
            pager: jQuery('#Pager'),
            rowNum: 10,
            rowList: [5, 10, 20, 50, 100],
            sortname: 'FirstName',
            width: '1005',
            sortorder: "asc",
            sorttype: 'int',
            viewrecords: true,
            height: 'auto',
            shrinkToFit: false,
            cache: false,
            caption: 'Online Sales'
        });
        jQuery("#List").jqGrid('navGrid', '#Pager', { edit: false, add: false, del: false, search: false, refresh: true });

    });
</script>

我的控制器

public ActionResult OnlineSales(string sidx, string sord, int page, int rows, DateTime start_date, DateTime end_date)
        {
            _DashboardDataAccess = new DashboardDataAccess(0);
            List<OnlineSales> _OnlineSales = _DashboardDataAccess.OnlineSales(start_date, end_date);

            var result = _OnlineSales.AsQueryable().AsEnumerable<OnlineSales>();

            int count = result.Count();
            result = result.Skip((page - 1) * rows).Take(rows);
            int pagecount = (count % rows) == 0 ? (count / rows) : (count / rows) + 1;

            var ReportList = (from r in result
                              select new
                              {
                                  cell = new string[] {
                                  r.FirstName,
                                  r.MiddleName,
                                  r.LastName,
                                  r.Email,
                                  r.MobileNumber
                                  }
                              });
            var jsonData = new
            {
                total = pagecount,
                page = page,
                records = count,
                rows = ReportList.ToArray()
            };

            return Json(jsonData, JsonRequestBehavior.AllowGet);

        }

【问题讨论】:

    标签: jquery asp.net-mvc asp.net-mvc-3 jqgrid parameters


    【解决方案1】:

    如果我理解你的查询正确,试试这个...

    StartDateEndDate 存储在Session Variables 中,然后您可以检查发送grid dataSession Variables,然后根据Session Variables,您可以构建查询。您还需要检查null,如果Session Variablesnull,那么您可以返回不带Search Parameters 的结果。

    然后只需导航到所选报告的grid 所在的页面。然后网格将根据搜索参数(来自会话)加载数据。

    编辑1

    另一种方式:

    在 HTML 中定义两个隐藏字段:

    <input type="hidden" name="hiddenStartDate" value="">
    <input type="hidden" name="hiddenEndDate" value="">
    

    然后将值设置为函数中的隐藏字段:

    $('#SearchButton').click(function () {
        $('#hiddenStartDate').val($("#StartDate").val());
        $('#hiddenEndDate').val($("#EndDate").val());
        //Submit the form where you are accepting the request for grid for building query and sending data
        //Access values of hidden fields
    });
    

    【讨论】:

    • 谢谢,但我无法显示带有数据的 OnlineSales 页面
    猜你喜欢
    • 1970-01-01
    • 2016-01-24
    • 2015-04-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多