[英]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.