Javascript 如何获取检查行ID?
我正在使用jqGrid,我添加了一个复选框列,我希望能够得到选中的行,这样我就可以用它们调用服务器 我的jqGrid代码: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%',
<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)
{
}