javascript - 使用复选框从iggrid中的选中行获取数据

标签 javascript c# infragistics ignite-ui iggrid

我目前有一个网格,它在单击时将所选行的数据存储在一个数组中。这种方法工作得很好,但是我正在尝试更改它以便我可以使用复选框选择多行并能够将所有日期存储在我的数组中。基本上,我希望能够在其中添加多行,而不是一次在我的数组中添加一行。我不知道你们是否关注我,但请查看我的代码,以便我们找到实现此目的的方法。

在这里,

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>

我已经添加了在我的网格中包含复选框的功能,但是还没有任何东西可以处理它们!

/////////////////////////////////////////////////////////////////////////////////////

稍微编辑一下,这样我就可以清理一些东西

让我试着详细说明一下我希望能够做什么。我希望能够批量添加在行数组中选中的所有行的数据。也就是说,假设我检查了三行。当我按下“确定”按钮时,它应该将所有三行的信息存储在我的数组中。

如果全部成功,我的数组应该有三个“元素”。例如,array[0] 将包含检查的第一行中的数据。这将允许我访问每个单元格并将它们的“textContent”存储在“ContactToBind”中,这是我目前用来存储每个单元格信息的内容。

我希望这能稍微澄清一点!

非常感谢您的帮助。

纪尧姆

最佳答案

您可以使用.igGrid( "allRows"); 获取您的网格中的所有行,将其保存在名为"myRows" 的变量中。然后编写 javascript 代码遍历从 .igGrid( "allRows") 获得的 "myRows" 并检查每一行的组合框的值。如果当前行的组合框被“选中”,则将当前行放入您的数组中。在循环结束时,您将检查数组中的所有行。

如果您不知道如何遍历存储在 "myRows" 变量中的 "allRows",请使用 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;
}

关于javascript - 使用复选框从iggrid中的选中行获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24438100/

相关文章:

c# - 从 UWP BackgroundTask 调用 MediaCapture.InitializeAsync

wpf - 在 wpf mvvm 中单击按钮时将集合绑定(bind)到 xamdatagrid

jquery - 重新加载基础设施网格

javascript - 用angular js迭代一个字典数组

c# - 使用公共(public)成员有什么好处/坏处/不必要的吗?

javascript - 强制数组在排序后重新计算长度

新的 .NET 6 控制台模板中的 C# 函数重载不起作用

c# - Infragistics UltraGrid 中复选框的检查更改会引发哪个事件?

javascript - 如何停止执行react代码直到axios请求完成?

javascript - IBM Worklight - 使用 jQuery 进行表单验证