如何在javascript中在gridview的每个循环中获取一个元素

How to get an element in each loop of gridview in javascript

本文关键字:获取 元素 一个 循环 javascript 中在 gridview      更新时间:2023-09-26

我想用java脚本获取我在复选框中选中的队列的IdQueue。例如,如果我选中了IdQueue的3和5的框,我希望JS会提醒我它们的IdQueue。

我需要你帮我做这个JS。

谢谢。

    <div data-role="popup" align=center id="Div1" style="width:600px; height:400px; direction:rtl; background-color:white">
                  <asp:GridView ID="GridView1" ClientIDMode="Static" runat="server" AllowPaging="False" AutoGenerateColumns="false"
                OnRowCommand="grd_Threshold_Command" CssClass="text" Width="80%" OnRowDataBound="grd_Threshold_OnRowDataBound" >
                <HeaderStyle CssClass="gridHeader" />
                <RowStyle CssClass="gridRow" VerticalAlign="Top" />
                <Columns>
                    <asp:TemplateField HeaderText="IdQueue" Visible="true">
                        <ItemTemplate>
                            <asp:Label ID="lblCSQCode" runat="server" Text='<%# Bind("CSQid") %>' BorderStyle="none"
                                BorderWidth="0px"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="NameQueue" HeaderStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:Label ID="lblCSQName" runat="server" Text='<%# Bind("Name") %>' BorderStyle="none"
                                BorderWidth="0px"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="IntervalQueue" HeaderStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:DropDownList Visible="true" Enabled="true" ID="ddlResalution" EnableViewState="true"
                                runat="server" Width="148px">
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="ChooseQueue" HeaderStyle-HorizontalAlign="Center">
                        <ItemTemplate>
                            <asp:CheckBox ID="cbk1"  runat="server" EnableViewState="true" />
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
            <br />
            <asp:Label ID="lblMust" runat="server" Text="" ForeColor="Red"></asp:Label>
            <br />
            <div style="width: 100px; margin: 0 auto;">
                <asp:ImageButton ID="ImgBtnSave" runat="server" ImageUrl="~/Images/glossyGreenOK.gif"
                    Height="40px" OnClick="lnkBranchReport_Click" Width="40px" />
            </div>
            <div style="width: 100px; margin: 0 auto;color: #003399; font-weight: bold;
                font-size: 14px;">
                <asp:LinkButton ID="lnbSave" runat="server" OnClientClick="CheckedBoxes()" >ok</asp:LinkButton>
               
            </div>
        
    </div>

试试这个:

<asp:CheckBox ID="cbk1"  runat="server" EnableViewState="true" data-id='<%# Eval("CSQid") %>' />
<asp:LinkButton ID="lnbSave" runat="server" OnClientClick="CheckedBoxes();return false();" >ok</asp:LinkButton>

在复选框中添加一个自定义属性,这样我们就可以直接从这里访问id,而不是从标签lblCSQCode获取id。之后添加此javascript

第一路

 $('#<%=lnbSave.ClientID%>').on('click', function() {
     var arr = [];
     var selectedID = '';
     $('#<%=GridView1.ClientID%> tr td input[type=checkbox]:checked').each(function() {
         var id = $(this).parent().attr('data-id');
         arr.push(id);    
     });
     selectedID = arr.join();
     //alert(selectedID);
 });

第二路

function CheckedBoxes() {
    var arr = [];
    var selectedID = '';
    $('#<%=GridView1.ClientID%> tr td input[type=checkbox]:checked').each(function() {
        var id = $(this).parent().attr('data-id');
        arr.push(id);    
    });
    selectedID = arr.join();
    //alert(selectedID);
}