Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取检查行ID?_Javascript_Asp.net_Jqgrid_Checkbox - Fatal编程技术网

Javascript 如何获取检查行ID?

Javascript 如何获取检查行ID?,javascript,asp.net,jqgrid,checkbox,Javascript,Asp.net,Jqgrid,Checkbox,我正在使用jqGrid,我添加了一个复选框列,我希望能够得到选中的行,这样我就可以用它们调用服务器 我的jqGrid代码: <script type="text/javascript"> $(function () { $("#UsersGrid").jqGrid({ url: "Handler.ashx", datatype: 'json', height: '100%',

我正在使用jqGrid,我添加了一个复选框列,我希望能够得到选中的行,这样我就可以用它们调用服务器

我的jqGrid代码:

<script type="text/javascript">
    $(function () {
        $("#UsersGrid").jqGrid({
            url: "Handler.ashx",
            datatype: 'json',
            height: '100%',
            width: '500',
            colNames: [' ', 'ref#', 'Module', 'TT#', 'AssignedOn', 'TrialNo'],
            colModel: [
                    { name: ' ', index: 'ChkBox', width: 16, sortable: false, editable: true, formatter: "checkbox", formatoptions: { disabled: false }, editable: true, edittype: "checkbox" },
                    { name: 'ref#', width: 50, sortable: true },
                    { name: 'Module', width: 50, sortable: true },
                    { name: 'TT#', width: 110, sortable: true },
                    { name: 'AssignedOn', width: 110, sortable: true },
                    { name: 'TrialNo', width: 50, sortable: true }
                ],
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: '#UsersGridPager',
            sortname: ' ',
            viewrecords: true,
            sortorder: 'asc'
            //caption: "Cases"
        });

        $("#UsersGrid").jqGrid('navGrid', '#UsersGridPager', { edit: false, add: false, del: false });
</script>

提前感谢…

您不必手动添加复选框列。我是这样做的:

指定editurl和multiselect选项:

为响应editurl请求的修改操作提供处理程序。在我的例子中,它是一个具有此签名的操作方法:

public ActionResult EditItems(string id, string oper, string source, string target)
{
    // id: list of IDs of the selected items (e.g. "1234,5678")
    // oper: the requested operation ("edit" or "del", if you use the standard ones)
    // source, target: in case of the "edit" operation, these are the new values of the respective columns. I.e. these parameters are model-specific (I have "source" and "target" columns in my grid)
}

您最好选择multiselect:true,因为我可以看到您使用复选框实现的功能是选择多行

以下是它将如何为美国工作。 1.在jqgrid参数中设置multiselect:true

向html添加一个按钮,如下所示 按钮类型=按钮值=提交id=单击我>提交/按钮>//正确启动和关闭标记

现在,在这个按钮的click事件上,获取所选行的数据,并向服务器发出一个ajax请求。 $'clickMe'。单击函数{ var selRowIds=$'grid'.jqGrid'getGridParam','selarrrow'

if(selRowIds.length>0)
               {
                   for( var i=0;i<selRowIds.length;i++){
           var ref#=getCellValue(selRowIds[i],'ref#');
           var Module=getCellValue(selRowIds[i],'Module');
           var TT#=getCellValue(selRowIds[i],'TT#');


           var AssignedOn=getCellValue(selRowIds[i],'AssignedOn');
               var TrialNo=getCellValue(selRowIds[i],'TrialNo');

               $.ajax({
               type: 'POST',
               url: '@Url.Action("editMe")',
               contentType: 'application/json; charset=utf-8',
               data:JSON.stringify({ref#: ref#, Module:Module,TT#:TT#,AssignedOn:AssignedOn,TrialNo:TrialNo}),
               dataType: "json",
               success:function(){
               $('#grid').trigger("reloadGrid");
                },

                error: function () {
                       alert("error");
                    }
                }); 
                }
                }
           });

我假设所有列的数据类型都是字符串,并且它们都是可编辑的:true您可以用colModal提及这一点。因此,如果只有Module,AppliedOn是可编辑的true,那么您只能在按钮单击中获得这两个值。根据您的需要,您可以更改代码。

非常感谢,我了解所有这些,除了:什么是“ActionResu”当你使用asp.net mvc时,你可以在这里指定你的返回类型。我没有使用mvc,这是普通的asp.net…这就是我说的,当你使用asp.net时,你可以在这里指定不同的返回类型。好的,我尝试了其他方法,但仍然使用你的按钮代码,但是我得到一个错误,没有定义“getCellValue”…!非常感谢,但是什么是ActionResult吗?!,这是一个ASP.Net应用程序…Action Result-。是ASP.Net的MVC相关类的一部分。我明白了。这是MVC特有的。我不熟悉纯ASP.Net,但您肯定有办法定义一个函数来响应您的editurl并接受所需的id和oper参数?非常感谢您的帮助。。。
if(selRowIds.length>0)
               {
                   for( var i=0;i<selRowIds.length;i++){
           var ref#=getCellValue(selRowIds[i],'ref#');
           var Module=getCellValue(selRowIds[i],'Module');
           var TT#=getCellValue(selRowIds[i],'TT#');


           var AssignedOn=getCellValue(selRowIds[i],'AssignedOn');
               var TrialNo=getCellValue(selRowIds[i],'TrialNo');

               $.ajax({
               type: 'POST',
               url: '@Url.Action("editMe")',
               contentType: 'application/json; charset=utf-8',
               data:JSON.stringify({ref#: ref#, Module:Module,TT#:TT#,AssignedOn:AssignedOn,TrialNo:TrialNo}),
               dataType: "json",
               success:function(){
               $('#grid').trigger("reloadGrid");
                },

                error: function () {
                       alert("error");
                    }
                }); 
                }
                }
           });
 public ActionResult editMe(string ref#, string Module, string TT#, string AssignedOn, string TrialNo)
        {
          }