假设我有一个gridview,我的gridview有很多行,包括页眉和页脚以及寻呼机。
在每一行都有一些文本框,下拉列表和复选框。
像employeeid和employeename这样的两个文本框,一个性别下拉列表,一个用于选择毕业生的复选框。
所以我需要知道如何通过jquery迭代gridview并迭代除header,footer和pager之外的每一行。
所以我需要从每行的textbox,dropdown和checkbox中提取值,并构建json字符串以便将数据发送到服务器。
构建json字符串,如
var json = "{'Name':'" + $("input[id*='txtName']").val() +
"','Subject':'" + $("input[id*='Subject']").val() +
"','Email':'" + $("input[id*='Email']").val() +
"','Message':'" + jQuery.trim($('.message').val()) + "'}";
感谢
答案 0 :(得分:1)
试试这个。
将RowStyle添加到GridView标记中,如下所示
<RowStyle CssClass="row" />
<AlternatingRowStyle CssClass="row" /><!-- If needed -->
现在tr
中的所有GridViewRow
都有<tr class="row">
。然后在按钮单击事件中调用此脚本。
var items = [];
$(".row").each(function() {
var item = {};
item.ID = $.trim($(this).find("input[id*='ID']").val());
item.Name = $.trim($(this).find("input[id*='Name']").val());
item.Gender = $(this).find("select[id*='Gender']").val();
item.IsGraduate = $(this).find("input[id*='IsGraduate']").is(':checked');
items.push(item);
});
var DTO = JSON.stringify(items);
请为没有JSON支持的浏览器添加对json2.js的引用
答案 1 :(得分:1)
我不知道你正在使用什么gridview,但我可以建议你这样的解决方案。
Gridview呈现为表格,您可以为行提供属性,如“Row0”,“Row1”
通过在java脚本中查找gridview,您可以遍历其行并使用指定的属性知道当前行是什么,并在行中查找适当的元素并获取其值
$("tr",$("#gridViewID")).each(function()
{
// here you can get elements index of your row by tour attribute
`$("input[id*='txtName']",$(this))` //is your textbox
// getting all this values you can build your json string
})