通过jquery迭代Gridview

时间:2011-08-12 06:51:29

标签: jquery json gridview

假设我有一个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()) + "'}";

感谢

2 个答案:

答案 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的引用

模拟:http://jsfiddle.net/naveen/P8Aue/

答案 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

})