多个用户控件和clientid asp.net JS

时间:2010-11-30 16:23:47

标签: javascript asp.net jquery user-controls

我正在关注帖子:

http://mosesofegypt.net/post/GridView-with-Select-All-CheckBox-using-JQuery.aspx

在asp.net gridview中创建一个复选框列,并选择/取消选择所有功能。 在我的例子中,gridview和javascript(JQuery)代码位于动态加载的usercontrol中,并且该用户控件有多个实例。选择/取消选择功能仅适用于在页面上创建的最后一个用户控件。 换句话说,js脚本中的gvProducts.ClientId只知道最后一个gridview。 任何想法如何在其他用户控件(即除了最后一个)之外引用gridview的ClientIds? 非常感激任何的帮助。

编辑:此问题与本文中提到的问题基本相同:Multiple user control instances and ClientID in JS 但它没有帮助答案。

谢谢, 阿里

1 个答案:

答案 0 :(得分:0)

你可以将一个CssClass添加到GridView中,并将你的jQuery选择器基于它。

脚本:

<script type="text/javascript">
    $(function () {
        $(".t th input:checkbox").click(function () {
            var $checkbox = $(this).closest('table').find(':checkbox:not(:first)');
            $checkbox.attr('checked', $(this).attr('checked'));
        });
    });
</script>

2个具有相同类名的表:

 <table class="t">        
    <tr>
        <th align="left" scope="col">Category</th>
        <th align="left" scope="col">Product</th>
        <th align="right" scope="col">Unit Price</th>
        <th align="left" scope="col">Supplier</th>
        <th scope="col">
            <input type="checkbox" name="select-all" />
        </th>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
</table>
<br /><br /><br />
<table class="t">        
    <tr>
        <th align="left" scope="col">Category</th>
        <th align="left" scope="col">Product</th>
        <th align="right" scope="col">Unit Price</th>
        <th align="left" scope="col">Supplier</th>
        <th scope="col">
            <input type="checkbox" name="select-all" />
        </th>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
    <tr>
        <td></td>
        <td></td>
        <td></td>
        <td><input type="checkbox" /></td>
    </tr>
</table>