如何在ASP.NET MVC igGrid包装器中使用HTTP POST请求?

时间:2018-10-18 05:16:26

标签: asp.net-mvc infragistics ignite-ui iggrid

在igGrid中使用ajax post调用通过指定requestType属性使用HTTP POST方法似乎很简单。但是,我找不到在igGrid(Infragistics 16.2)的ASP.NET MVC包装器中指定requestType的任何方法。

@(Html.Infragistics()
        .Grid(Model)
        .ID("transactionGrid")
        .PrimaryKey("ID")
        .Height("550px")
        .Width("100%")
        .AutoGenerateColumns(false)
        .AutoGenerateLayouts(false)
        .Columns(column =>
        {
            column.For(x => x.ID).HeaderText("Broker");
            column.For(x => x.Category).HeaderText("Category");
            //column.For(x => x.BrokerName).HeaderText("Broker");
            column.For(x => x.ParAmount).HeaderText("Par").Format("N2");
            column.For(x => x.CommissionAmount).HeaderText("Commission").Format("N2");
        })
        .Features(features =>
        {
            features.Sorting().Type(OpType.Local);
            features.Filtering().Type(OpType.Local);
            features.Summaries()
                .Type(OpType.Local).CalculateRenderMode(SummaryCalculateRenderMode.OnSelect)
                .ColumnSettings(cs =>
                {
                    cs.ColumnSetting().ColumnKey("CommissionAmount").SummaryOperands(so =>
                    {
                        so.SummaryOperand().Type(SummaryFunction.Sum).Active(true);
                    });
                    cs.ColumnSetting().ColumnKey("ParAmount").SummaryOperands(so =>
                    {
                        so.SummaryOperand().Type(SummaryFunction.Sum).Active(true);
                    });
                    cs.ColumnSetting().ColumnKey("Category").AllowSummaries(false);
                    cs.ColumnSetting().ColumnKey("ID").AllowSummaries(false);
                });
        })
        .DataSourceUrl(Url.Action("GetTransactions"))
        .DataBind()
        .Render()
    )

2 个答案:

答案 0 :(得分:2)

您仍然可以使用以下方法通过网格原型进行设置:

$。ui.igGrid.prototype.requestType =“ POST”

在网格初始化代码之前的某处添加了

之所以没有被公开,是因为诸如排序/过滤/分页之类的自动化远程操作仅适用于采用GET请求的URL中编码的参数。如果您自己处理远程操作,也就是说您没有使用 GridDataSourceActionAttribute 装饰控制器方法,则没有理由无法通过上述原型更改来更改请求类型,并且无法读取和处理查询。来自请求正文。

希望这会有所帮助!

答案 1 :(得分:0)

我找到了答案: 由于Grid ASP.NET MVC Wrappers的主要用例是与远程网格功能的服务器端处理一起使用,因此包装器中不会公开“ requestType”选项,因为服务器端功能处理(GridModel.GetData和GridDataSourceAction)仅适用于HTTP GET方法。

他们希望在MVC包装器中公开requestType,这是他们希望在将来的Ignite UI for JavaScript版本中实现的,但是Ignite UI 16.2不在支持范围内,因此不再适用。