我目前有一个网格,用于在单击时将所选行的数据存储在数组中。这种方法完全正常,但是我试图改变它,这样我就可以用复选框选择多行,并能够将所有日期存储在我的数组中。基本上,我希望能够在我的数组中添加多行,而不是一次添加一行。我不知道你们是否跟着我,但请查看我的代码,以便我们找到办法。
在这里,
Javascript:
$('#GridBindContact').on('iggridselectionactiverowchanged', function (event, args) {
$("#PrimaryKey").val(args.row.element[0].cells[1].textContent);
$("#ContactToBind_Numcon").val(args.row.element[0].cells[1].textContent);
$("#ContactToBind_FullName").val(args.row.element[0].cells[2].textContent + ' ' + args.row.element[0].cells[3].textContent);
$("#ContactToBind_Titcon").val(args.row.element[0].cells[4].textContent);
$("#ContactToBind_Tel1con").val(args.row.element[0].cells[5].textContent);
$("#ContactToBind_Tel2con").val(args.row.element[0].cells[6].textContent);
$("#ContactToBind_Emailcon").val(args.row.element[0].cells[7].textContent);
$("#ContactToBind_NumEmployees").val(args.row.element[0].cells[8].textContent);
$("#ContactToBind_NameEmployees").val(args.row.element[0].cells[9].textContent);
$("#ContactToBind_Added").val(true);
$(".ui-button-text").trigger("click");
});
在我看来:
@(Html.Infragistics.Grid(Of Contact)(Model.Results).ID("GridBindContact").
AutoGenerateColumns(False).
Width("100%").
Height("400px").
ResponseDataKey("Results").
Columns(Sub(column)
column.For(Function(e) e.Numcon).Template("${Numcon}").HeaderText("Num")
column.For(Function(e) e.Pnmcon).Template("${Pnmcon}").HeaderText("Pnm").Width("10%")
column.For(Function(e) e.Namemcon).Template("${Namecon}").HeaderText("Name").Width("15%")
column.For(Function(e) e.Titcon).Template("${Titcon}").HeaderText("Title").Width("20%")
column.For(Function(e) e.Tel1con).Template("${Tel1con}").HeaderText("Tel1")
column.For(Function(e) e.Tel2con).Template("${Tel2con}").HeaderText("Tel2")
column.For(Function(e) e.Emailcon).Template("${Emailcon}").HeaderText("Email")
column.For(Function(e) e.NumEmployees).HeaderText("Num Emp")
column.For(Function(e) e.NameEmployees).HeaderText("Name Emp")
End Sub).
Features(Sub(features)
features.Sorting().Type(OpType.Local)
features.RowSelectors.EnableCheckBoxes(True).RowSelectorsColumnWidth("50px").EnableRowNumbering(False)
features.Selection().Mode(SelectionMode.Row).MultipleSelection(True).AddClientEvent("activeRowChanging", "activeRowChanging")
features.Updating().EditMode(GridEditMode.None).EnableAddRow(False).EnableDeleteRow(False)
End Sub).Render())
<form action="#" id="ajaxForm" method="post">
@Html.HiddenFor(Function(x) x.PrimaryKey)
@Html.HiddenFor(Function(x) x.ContactToBind.Numcon)
@Html.HiddenFor(Function(x) x.ContactToBind.FullName)
@Html.HiddenFor(Function(x) x.ContactToBind.Titcon)
@Html.HiddenFor(Function(x) x.ContactToBind.Tel1con)
@Html.HiddenFor(Function(x) x.ContactToBind.Tel2con)
@Html.HiddenFor(Function(x) x.ContactToBind.Emailcon)
@Html.HiddenFor(Function(x) x.ContactToBind.NumEmployees)
@Html.HiddenFor(Function(x) x.ContactToBind.NameEmployees)
</form>
我已经添加了这个功能,在我的网格中有复选框,但还没有处理它们!
/////////////////////////////////////////////// ////////////////////////////////////////////
很少编辑所以我可以清理一些事情
让我试着再详细说明一下我希望能做些什么。我希望能够将行数组中检查的所有行中的数据作为批处理添加。那就是说,我说我检了三排。当我按下'确定&#39;按钮,它应该存储我的数组中所有三行的信息。
如果一切顺利,我的阵列应该有三个元素&#39;。例如,array [0]将包含来自检查的第一行的数据。这将允许我访问每个单元格并存储&#39; textContent&#39;他们来自&#39; ContactToBind&#39;这就是我现在用来存储每个小区信息的内容。
我希望能稍微清理一下!
非常感谢你的帮助。
纪尧姆
答案 0 :(得分:2)
您可以使用.igGrid( "allRows" );
获取网格中的所有行,将其保存在名为"myRows"
的变量中。然后编写javascript代码以遍历从"myRows"
获得的.igGrid( "allRows" )
并检查每行的组合框的值。如果当前行的组合框&#34;已选中&#34;,请将此当前行放入数组中。在循环结束时,您将获得已检查的数组中的所有行。
如果您不知道如何遍历存储在"allRows"
变量中的"myRows"
,请使用console.log(myRows)
并在浏览器的控制台窗口中检查对象结构。你将能够看到如何进入复选框列,这将是这样的,但我不确定请使用console.log检查自己:
for(var i = 0 ; i < myRows.length ; i ++ )
{
myRows[i].cells....(select the checked combobox)
if yes then store myRows[i] in your array;
}