C# 如何在jqgrid中添加新的按钮/图像列

C# 如何在jqgrid中添加新的按钮/图像列,c#,javascript,asp.net-mvc,button,jqgrid,C#,Javascript,Asp.net Mvc,Button,Jqgrid,我正在ASP.net MVC web应用程序中使用JQgrid 通过使用格式化程序 但是,问题是我无法获取单击按钮的行中的列的值 例如,如果单击第4行上的按钮edit(new added),则需要获取该特定行第一列的值 我需要这个,因为我想重定向到另一个具有该值的页面并在那里进行编辑 我无法获取该值并向其中添加javascript 请使用任何代码示例对此提供帮助。下面是一个简单的示例,说明如何将按钮动态添加到jqgrid中 不确定您的第一行是否是小提琴中指定的id,但您可以通过afterIns

我正在ASP.net MVC web应用程序中使用JQgrid

通过使用
格式化程序

但是,问题是我无法获取单击按钮的行中的列的值

例如,如果单击第4行上的按钮edit(new added),则需要获取该特定行第一列的值

我需要这个,因为我想重定向到另一个具有该值的页面并在那里进行编辑

我无法获取该值并向其中添加javascript


请使用任何代码示例对此提供帮助。

下面是一个简单的示例,说明如何将按钮动态添加到jqgrid中

不确定您的第一行是否是小提琴中指定的id,但您可以通过
afterInsertRow
函数修改它以使用正确的数据

var data = [
    {id: 1, text: 'row1'},
    {id: 2, text: 'row2'},
    {id: 3, text: 'row3'},
    {id: 4, text: 'row4'},
    {id: 5, text: 'row5'},
];
$("#grid").jqGrid({
    datatype: "local",
    height: 250,
    colNames: ['Id', 'Text', 'edit'],
    colModel: [
        { name: 'id', index: 'id', sorttype: "int" },
        { name: 'text', index: 'text' },
        { name: 'edit', index: 'edit', align: 'center', sortable: false, width: '40px' }
    ],
    caption: "Custom buttons",
    data: data,
    afterInsertRow: function(id, currentData, jsondata) {
        var button = "<a class='gridbutton' data-id='"+id+"' href='#'>edit</a>";
        $(this).setCell(id, "edit", button);
    },
    loadComplete: function(data) {
        $(".gridbutton").on('click', function(e) {
           e.preventDefault();
           alert('Edit id: ' + $(this).data("id"));
        });
    }
});
var数据=[
{id:1,文本:'row1'},
{id:2,文本:'row2'},
{id:3,文本:'row3'},
{id:4,文本:'row4'},
{id:5,文本:'row5'},
];
$(“#网格”).jqGrid({
数据类型:“本地”,
身高:250,
colNames:['Id','Text','edit'],
colModel:[
{name:'id',index:'id',sorttype:'int'},
{name:'text',index:'text'},
{name:'edit',index:'edit',align:'center',sortable:false,width:'40px'}
],
标题:“自定义按钮”,
数据:数据,
afterInsertRow:函数(id、currentData、jsondata){
var按钮=”;
$(此).setCell(id,“编辑”,按钮);
},
loadComplete:函数(数据){
$(“.gridbutton”)。在('click',函数(e){
e、 预防默认值();
警报(“编辑id:”+$(此).data(“id”);
});
}
});

您不需要将
单击事件处理程序绑定到列中的每个按钮。每个绑定都占用web浏览器的内存和其他资源。从内部到外部DOM元素(请参阅)、鼠标单击、键盘向下键、触摸式触控启动和网格内按钮上的其他事件的大多数气泡都会气泡到网格的
元素。jqGrid默认情况下注册
单击网格上的事件处理程序。它调用事件处理程序中的
beforeSelectRow
onCellSelect
回调并触发
jqGridBeforeSelectRow
jqGridCellSelect
事件。因此,不必绑定自己的
在每个按钮上单击
事件处理程序,只需使用上面列出的回调或事件中的一个即可<将首先使用code>beforeSelectRow
(或
jqGridBeforeSelectRow
)。如果单击按钮时没有选择相应的行,则回调是实用的。例如,演示如何验证是否调用了所需的列。提供了一个非常接近您需要的示例。提供另一个代码片段。想了解更多关于你可以使用的主题的我的旧答案


更新:该演示是对Manuel van Rijn发布的演示的修改。这说明了我的意思。

@Manuel..谢谢。我将无法访问jsFiddle..你能在这个页面上添加代码吗..@ManuelvanRijn:我偶尔能找到旧的答案。我添加了对你的演示的修改,它显示了我在答案中的意思。@Oleg.看到你的答案后,我真的没有话可说了。它超过了我所需要的100%。。我已经实现了它,并且工作得很好:)