使用jQuery获取gridview列值

时间:2014-08-22 15:37:03

标签: jquery html asp.net

请原谅我们的格式,但我们无法连接并发布到任何公共网站,因此这是从我的手机发布的。

我们有一个带复选框的ASP.Net gridview。我们有逻辑可以查找是否检查了哪些值。我们唯一的问题是我们有一个案例打开另一个窗口,其中包含基于这些复选框的新页面。自上次回发以来,用户可能检查了更多复选框,因此我们将通过gridview检查该页面的数据并获取检查值。

我可以毫无问题地获得复选框。问题是我不知道如何从另一列中找到值。

我不能发布很多代码,但我确实获得了发布这么多的许可。

function myfunctionname (gridviewid){
    var myvalue = "";
    $('#' + gridviewid + ' input[type=checkbox]:checked').each(function (index){
        myvalue = myvalue + $(this).IDontKnowWhatINeedHere
    });
}

我尝试过.find().parente().name()等许多其他事情。基本上,无论我尝试过什么,我总是有未定义的,jQuery函数或错误。

我想要的是,因为我有正确的复选框,我想获取父行并从另一列中作为跨度生成的标签中获取值。

任何人都有任何想法从哪里开始进入下一步?

由于

3 个答案:

答案 0 :(得分:1)

第一个问题是找到父行。

$(this).closest('tr');

将转到复选框的父行。您可以像这样获取行中的列列表:

var tds = $(this).closest('tr').find('td');

然后,一旦你有了,你就可以使用.eq函数和你正在寻找的列索引

var col = tds.eq(index);

然后你应该能够从这个范围内得到这样的值:

var spanValue = col.find('span').text();

回复:.eq().closest()

答案 1 :(得分:1)

您可以通过获取父<span>从另一列的<TR>获取文本,之后,您可以按索引找到正确的列,或者更推荐按ID或类属性查找:

...
<tr>
    <td><input type="checkbox"></td>
    ...
    <td><span>Here</span></td>
    ...
</tr>
...
<script type="text/javascript">
    function myfunctionname (gridviewid){
        var myvalue = "";
        $('#' + gridviewid + ' input[type=checkbox]:checked').each(function (index){
            myvalue = myvalue + $(this).closest("tr").find("span").text();
            // or $(this).closest("tr").find("#MySpanID").text();
            // or $(this).closest("tr").find(".MySpanClass").text();
        });
    }
</script>

请注意,我使用了closest()。此方法在DOM中搜索它使用指定选择器创建的第一个父级。在这种情况下,它将遍历DOM直到复选框的父<TR>。从那里你可以搜索任何孩子。

答案 2 :(得分:1)

在没有看到代码的情况下,我可以猜出一个可能的解决方案。 jquery函数“最接近”。 http://api.jquery.com/closest/

这可能是一个不好的例子,但它显示了它如何起作用或者可能有所帮助。

<div>
    <p><label for="randomName">label</label><input type="text" name="randomName" id="randomName"/> </p>
    <p><label for="randomName1">label</label><input type="text" name="randomName1" id="randomName1"/> </p>
</div>

<script type="text/javascript">
    $("[name='randomName']").closest( 'div').find( "[name='randomName1']").val();
</script>