簡體   English   中英

使用Jquery循環遍歷ASP.NET GridView以獲取選中行的ID

[英]Looping through ASP.NET GridView with Jquery to get ID's of Checked Rows

我對此有疑問。

我在第一列中有一個帶有復選框的gridview,然后在下一列中有該行的id。 我需要遍歷網格,如果選中了該行,則需要將id附加到字符串中。

我的問題是ids變量帶回一個逗號分隔的“ undefined”字符串。 基本上,我需要從gridview獲取ID的正確方法。

   $("#test").click(function ()
        {
            if (Validation() === true)
            {
                var q = 0;

                var obj = {};
                obj.status = $("#dlStatus").val();
                obj.type = $("#dlType").val();
                obj.title = $("#tbTitle").val();
                obj.description = $("#tbDescription").val();

                var selectedItems = "";
                $("[id*=cbList] input:checked").each(function ()
                {
                    selectedItems += $(this).val() + ",";
                });

                obj.selectedjobs = selectedItems;

                var selectedGroups = "";
                $("[id*=cbGroups] input:checked").each(function ()
                {
                    selectedGroups += $(this).val() + ",";
                });

                obj.selectedgroups = selectedGroups;
                if ($("#FileUpload1").val())
                {
                    obj.materialurl = $("#FileUpload1").val().replace(/C:\\fakepath\\/i, '')
                }
                else
                {
                    obj.materialurl = "null";
                }
                var id = getQueryVariable("ID");
                if (id != false)
                {
                    obj.id = id;
                }
                else if (id === false)
                {
                    obj.id = "0";
                }
                var ids;


---------------------ISSUE CODE BELOW-------------------------------------------
                var selids;
                var gvDrv = document.getElementById("<%= GridView2.ClientID %>").getElementsByTagName("tr");
                for (i = 1; i < gvDrv.length; i++)
                {
                    var checkbox = gvDrv[i].getElementsByTagName("input")[0];
                    if (checkbox.checked)
                    {
                        selid = $(this).find('td:eq(1)').val();
                        }
                        ids += selid + ",";
                }

-----------------------ISSUE CODE ABOVE----------------------------------------
                obj.selectedassoc = ids;
                $.ajax({
                    type: "POST",
                    url: "Default.aspx/InsertData",
                    data: JSON.stringify(obj),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (r)
                    {
                        var s = r.d;
                        $("#lblResult").css("color", "green");
                        $("#lblResult").css("font-size", "13");
                        $("#lblResult").html(s);
                        if ($("#FileUpload1") != null)
                        {
                            $("#test2").click();
                        }
                    },`enter code here`
                    error: function ()
                    {
                        $("#lblResult").html("There was an error sending the information.");
                    }
                    });
                 }
                 });

代替

var checkbox = gvDrv[i].getElementsByTagName("input")[0];
if (checkbox.checked)

您可以嘗試:

checkbox = gvDrv[i].find('input[type=checkbox]')
if (checkbox).prop('checked')==true)

從問題很難說出實際問題在哪里。

感謝您提供的所有幫助Stack Overflow。 哈克

弄清楚了。

更正的代碼。

 $("#test").click(function ()
    {
        if (Validation() === true)
        {
            var q = 0;

            var obj = {};
            obj.status = $("#dlStatus").val();
            obj.type = $("#dlType").val();
            obj.title = $("#tbTitle").val();
            obj.description = $("#tbDescription").val();

            var selectedItems = "";
            $("[id*=cbList] input:checked").each(function ()
            {
                selectedItems += $(this).val() + ",";
            });

            obj.selectedjobs = selectedItems;

            var selectedGroups = "";
            $("[id*=cbGroups] input:checked").each(function ()
            {
                selectedGroups += $(this).val() + ",";
            });

            obj.selectedgroups = selectedGroups;
            if ($("#FileUpload1").val())
            {
                obj.materialurl = $("#FileUpload1").val().replace(/C:\\fakepath\\/i, '')
            }
            else
            {
                obj.materialurl = "null";
            }
            var id = getQueryVariable("ID");
            if (id != false)
            {
                obj.id = id;
            }
            else if (id === false)
            {
                obj.id = "0";
            }
            var ids = "";

            var CustomerIDs = "";
            var grid = document.getElementById('<%=GridView2.ClientID %>');
            var selid = "";
            for (var i = 0; i < grid.rows.length; i++)
            {
                var Row = grid.rows[i];
                var ctrl = Row.cells[0].childNodes[1];

                if (ctrl.type == "checkbox")
                {
                    if (ctrl.checked)
                    {
                        selid += Row.cells[1].innerHTML + ",";
                    }
                }
            }
            obj.selectedassoc = selid;
            $.ajax({
                type: "POST",
                url: "Default.aspx/InsertData",
                data: JSON.stringify(obj),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (r)
                {
                    var s = r.d;
                    $("#lblResult").css("color", "green");
                    $("#lblResult").css("font-size", "13");
                    $("#lblResult").html(s);
                    if ($("#FileUpload1") != null)
                    {
                        $("#test2").click();
                    }
                },
                error: function ()
                {
                    $("#lblResult").html("There was an error sending the information.");
                }
            });
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM