【问题标题】:How to access id of onSelectRow in delOptions action method in jqGrid如何在 jqGrid 的 delOptions 操作方法中访问 onSelectRow 的 id
【发布时间】:2018-01-31 07:13:41
【问题描述】:

//隐藏输入元素

//我的网格详情: $("#jqGrid").jqGrid({ url: '@Url.Action("EditedEventData", "Calendar" ,new{ })' + '?CountryId=' + @countryid + '&CityId=' + @cityid , 异步:真, 数据类型:“json”, col型号:[

            //label: "Edit Actions",
            name: "",
            width: 100,
            formatter: "actions",
            formatoptions: {
                keys: true,
                edit: true,
                add: true,
                del: true,
                editOptions: {},
                addOptions: {},
                delOptions: {    

                    url:'@Url.Action("RemoveEvent", "Calendar")'+ '?HolidayId='+document.getElementById('hdnEventId').value ,
                    //mtype: 'POST',
                }// **here it is showing hdnEventId value empty**
            }
        }
        ],
        onSelectRow : function(id){ 
            console.log('inside onSelectRow');
            alert(id);                
            document.getElementById('hdnEventId').value=id;
            alert(document.getElementById('hdnEventId').value);
        },
        sortname: 'EventDate',
        loadonce: true,
        width: 750,
        height: 200,
        rowNum: 150,
        pager: "#jqGridPager"

    });

我无法在 delOptions 操作方法中访问 onSelectRow 的 id。 所以想到了一个隐藏的 html 元素并存储该值,但它显示为空。 提前致谢

【问题讨论】:

  • 您使用哪个版本的jqGrid以及来自哪个fork的jqGrid(free jqGrid,商业Guriddo jqGrid JS或版本中的旧jqGrid =4.7)? jqGrid 在删除过程中默认发送 rowid(与您在onSelectRow 中看到的相同),但在使用 POST 请求时它是 HTTP 正文的一部分,而不是 URL 的一部分。您可以使用 Chrome/IE/Firefox 的开发者工具查看 HTTP 网络流量。
  • 我使用了 Guriddo jqGrid JS bt 问题是访问作为我的 eventId 的 id 以便传递给我的控制器方法
  • 谁能帮帮我

标签: jqgrid


【解决方案1】:

执行删除时,id 会自动发送到服务器。通过post获取的参数名为id

如果您还想在删除行时填写 id,您可以使用一些事件来填写您想要的字段。这些是described here。在同一文档中,请参阅章节发布到服务器的内容

要在删除行时在另一个字段中填充 id,我认为最好的选择是使用 serializeDelData 或 afterSubmit 事件 - 请参阅同一链接上的事件。

使用这些事件时,参数 postdata 包含 id。例如,在 serializeDelData(在 delOptions 中设置)这看起来像

serializeDelData : function( postdata ) {
    var id = postdata.id;
    document.getElementById('hdnEventId').value=id;
    return postdata;
}

记住这两个事件都应该返回一些参数

【讨论】:

  • 感谢 Oleg 和 Tony 帮助我,现在我知道了:)
  • 如何让我的 selRowId 在@Url.Action 中可访问,以将其作为参数传递给控制器​​方法。选择 selRowId 的行 id
  • 如果我理解正确的问题 - 您不需要添加它 - 它会自动添加到您指向的 url。在服务器中,您可以使用名称 id 获取它
  • 是的,在添加 mtype:'GET' 后观察到了,谢谢@Tony :)
猜你喜欢
  • 2014-07-24
  • 2012-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多