简体   繁体   English

如何遍历gridview客户端?

[英]How to loop through gridview client side?

I have a grid view like this : 我有这样的网格视图:

<telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" AllowPaging="true"
        PageSize="20" OnPreRender="RadGrid1_PreRender" Width="500px">
        <PagerStyle Mode="NextPrevAndNumeric" />
        <MasterTableView TableLayout="Fixed" Width="500px">
            <ItemTemplate>
                <%# (((GridItem)Container).ItemIndex != 0)? "</td></tr></table>" : "" %>
                <asp:Panel ID="ItemContainer" CssClass='<%# (((GridItem)Container).ItemType == GridItemType.Item)? "item" : "alternatingItem" %>'
                    runat="server">
                    <asp:Image ID="image_event" runat="server" ImageUrl='<%# Eval("event_pic")%>' AlternateText="" />
                    <asp:RadioButton ID="rbtn_map" runat="server" onclientclick="adjustSelected(this)" />
                </asp:Panel>
            </ItemTemplate>
        </MasterTableView>
        <GroupingSettings CaseSensitive="false" />
    </telerik:RadGrid>

I wanna through client side method adjustSelected(this) to loop through all the radiobuttons make them unselected and set the clicked one only selected. 我想通过客户端方法adjustSelected(this)循环遍历所有adjustSelected(this)按钮使它们未被选中并设置仅被选中的单击方法。

Give all those radio buttons in the grid a class ( class="radioClass" ): 给网格中的所有单选按钮一个类( class="radioClass" ):

<asp:RadioButton CssClass="radioClass" runat="server" onclientclick="adjustSelected(this)" />

Then use the class to select all others radios: 然后使用该类选择所有其他无线电:

function adjustSelected(obj){
    $('.radioClass').prop('checked', false);
    this.checked = true;
}

You can also use unobtrusive JavaScript: 您还可以使用不引人注目的JavaScript:

var $radios = $('.radioClass');
$('.radioClass').click(function(){
    $radios.prop('checked', false);
    this.checked = true;
});

Update: 更新:

Ok ASP.Net generate weird markup, so use this as the function: 好ASP.Net生成奇怪的标记,所以使用它作为函数:

function adjustSelected(obj){
    console.log($('.radioClass :radio'));
    $('.radioClass :radio').prop('checked', false);
    $(':radio', obj).prop('checked', true);
}​
 function checkRadio{
    var grid = document.getElementById('<%=RadGrid1.ClientID%>');
    if (grid) {
        var elements = grid.getElementsByTagName('input');
        var checkcount = 0;
        for (var i = 0; i < elements.length; i++) {
            if (elements[i].type == 'radio' && elements[i].id.toString().match('rbtn_map') != null) {
               --- do code here ---                    
            }
        }

    }
 }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM