Asp.net mvc 3 jqgrid添加窗口参数

Asp.net mvc 3 jqgrid添加窗口参数,asp.net-mvc-3,jqgrid,Asp.net Mvc 3,Jqgrid,我正在使用MVC和jqgrid,我需要从dropdownlist传递一个值来添加或编辑窗口。这是我的代码: 查看: jQuery("#grid").jqGrid({ url: '@Url.Content("~/")' + 'Something/GridData/', datatype: "json", mtype: 'POST', colNames: ['Type', 'Product', 'Valu

我正在使用MVC和jqgrid,我需要从dropdownlist传递一个值来添加或编辑窗口。这是我的代码:

查看:

jQuery("#grid").jqGrid({
            url: '@Url.Content("~/")' + 'Something/GridData/',
            datatype: "json",
            mtype: 'POST',
            colNames: ['Type', 'Product', 'Value1', 'Value2', 'Value3'],
            colModel: [
                { name: 'parType', index: 'parType', width: 80, align: 'center', sortable: false, editable: true, search: false,
                    editrules: { required: true, number: true },
                    editoptions: {
                        dataEvents: [{
                            type: 'keyup',
                            fn: function (e) {
                                if (this.value.match(/\D/)) this.value = this.value.replace(/\D/g, '');
                            }
                        }]
                    }
                },
                { name: 'parProduct', index: 'parProduct', width: 80, align: 'left', editable: true, edittype: "select",
                    editrules: { required: true },
                    editoptions: {
                        multiple: false,
                        size: 1,
                        dataUrl: '@Url.Content("~/")' + 'Something/List/',
                        buildSelect: function (data) {
                            var response = jQuery.parseJSON(data);
                            var s = '<select>';
                            if (response && response.length) {
                                for (var i = 0, l = response.length; i < l; i++) {
                                    var ri = response[i];
                                    s += '<option value="' + ri.Value + '">' + ri.Text + '</option>';
                                }
                            }
                            return s + "</select>";
                        }
                    }
                },
                { name: 'parValue1', index: 'parValue1', width: 80, align: 'right', sortable: false, editable: true, search: false,
                    editrules: { required: true, number: true },
                    editoptions: {
                        dataEvents: [{
                            type: 'keyup',
                            fn: function (e) {
                                if (this.value.match(/\D/)) this.value = this.value.replace(/\D/g, '');
                            }
                        }]
                    }
                },
                { name: 'parValue2', index: 'parValue2', width: 80, align: 'right', sortable: false, editable: true, search: false,
                    editrules: { required: true, number: true },
                    editoptions: {
                        dataEvents: [{
                            type: 'keyup',
                            fn: function (e) {
                                if (this.value.match(/\D/)) this.value = this.value.replace(/\D/g, '');
                            }
                        }]
                    }
                },
                { name: 'parValue3', index: "parValue3", width: 80, align: 'right', editable: true,
                    editrules: { required: true },
                    editoptions: {
                        dataEvents: [{
                            type: 'blur',
                            fn: function (e) {
                                onBlurDecimal(this.id);
                            }
                        }]
                    }
                }],
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: jQuery('#pager'),
            sortname: '',
            viewrecords: true,
            sortorder: "asc",
            caption: "Title",
            height: 250,
            width: 700
        });

        jQuery("#grid").jqGrid('navGrid', '#pager',
            { edit: false, add: true, del: true, search: false }, //options
            {url: '@Url.Content("~/")' + 'Something/Add', closeAfterAdd: true, width: 500 },     // add options
            {} // search options
        );


@Html.ValidationSummary(False)
  @Using Html.BeginForm()
   <table>
                    <tr>
                        <td>
                            @Html.Label("ID_CONTRATANTE", "Contratante:")
                            @Html.DropDownListFor(Function(Model) Model.ID_CONTRATANTE, Nothing, New With {.style = "width:300px; visibility:visible", .class = "letraingreso"})
                        </td>
                    </tr>
                </table>
End Using
如您所见,我需要从主视图(ID_contantate)获取DDL值,并将其放入parIDContratante中。显然,该值返回Nothing,因为jqgrid的add窗口是打开的。如何从父视图向添加视图窗口发送此值


问候。

好的。。。。在寻找解决方案后,我得到了它

查看(替换旧导航栅格)

控制器(更换旧控制器) 函数WorkWith(ByVal parFormCollection作为FormCollection)作为ActionResult 尝试 作为一般实体的尺寸变量=新的一般实体

            Dim operation = parFormCollection("oper")
            If operation.Equals("add") Then
             Dim var1 = New OBJECT With { _
              .ID_TYPE = parFormCollection.Get("parProduct").ToString,
              **.ID_CONTRATANTE = parFormCollection.Get("parIDContratante").ToString,**
              .etc.....
             }
           varE.AddToOBJECTS(var1)
           varE.SaveChanges()

            ElseIf operation.Equals("edit") Then

            ElseIf operation.Equals("del") Then

            End If

            Return Json(True)
        Catch ex As Exception
            ' Do some error logging stuff, handle exception, etc.
            Return Json(False)
        End Try
    End Function
我希望这对其他人有所帮助。 再见

jQuery("#grid").jqGrid('navGrid', '#pager', {
            edit: false, add: true, del: true, search: false, refresh: false
        }, // general options
        {
        }, // options edit
        {
            url: '@Url.Content("~/")' + 'Something/WorkWith',
            closeOnEscape: true,
            closeAfterAdd: true,
            width: 500,
            modal: true,
            addCaption: 'Nueva Tarifa',
            reloadAfterSubmit: true,
            beforeShowForm: function (frm) { $('#ID_CONTRATANTE').val(); },
            //bottominfo: "Fields marked with (*) are required",
            drag: true,
            onclickSubmit: function (params) {
                var ajaxData = {};
                ajaxData = { parIDContratante: $("#ID_CONTRATANTE").val() };
                return ajaxData;
            }
        }, // options add
        {
            url: "/Something/WorkWith"
        }, // opciones para el dialogo de borrado
        {
        } // options search
        );
            Dim operation = parFormCollection("oper")
            If operation.Equals("add") Then
             Dim var1 = New OBJECT With { _
              .ID_TYPE = parFormCollection.Get("parProduct").ToString,
              **.ID_CONTRATANTE = parFormCollection.Get("parIDContratante").ToString,**
              .etc.....
             }
           varE.AddToOBJECTS(var1)
           varE.SaveChanges()

            ElseIf operation.Equals("edit") Then

            ElseIf operation.Equals("del") Then

            End If

            Return Json(True)
        Catch ex As Exception
            ' Do some error logging stuff, handle exception, etc.
            Return Json(False)
        End Try
    End Function