Javascript:标识两个不同的Gridview复选框时出错

Javascript:标识两个不同的Gridview复选框时出错,javascript,asp.net,gridview,checkbox,Javascript,Asp.net,Gridview,Checkbox,在我的web应用程序(asp.net和vb代码)中,我有两个不同的gridview。 每个gridview都有复选框来选择批量更新的记录。 然后有两个用于批量更新的按钮,一个用于Gridview 1和Gridview 2 我需要在单击相应的批量更新按钮时验证用户是否选中了复选框 我的代码是工作,它可以提示错误消息,如果没有复选框选中时,点击相应的批量更新按钮 但是我发现有一个错误。例如,当我选中gridview2复选框,然后单击gridview1批量更新按钮时,它不会提示任何错误消息,似乎我的j

在我的web应用程序(asp.net和vb代码)中,我有两个不同的gridview。 每个gridview都有复选框来选择批量更新的记录。 然后有两个用于批量更新的按钮,一个用于Gridview 1和Gridview 2

我需要在单击相应的批量更新按钮时验证用户是否选中了复选框

我的代码是工作,它可以提示错误消息,如果没有复选框选中时,点击相应的批量更新按钮

但是我发现有一个错误。例如,当我选中gridview2复选框,然后单击gridview1批量更新按钮时,它不会提示任何错误消息,似乎我的javascript无法识别与另一个gridview相关的复选框

以下是我的代码: Javascript代码:

function IsSelectedAtleastOneOT() {
    var loTable1 = document.all("<%=Gridview1.ClientID%>"); // GridView Name        
    count1 = 0;
    with (document.forms[0]) {
        for (var i = 0; i < elements.length; i++) {
            var e1 = elements[i];
e.id.substring(e.id.lastIndexOf('_') + 1, e.id.length) == 'ControlName') // This is our control Name
              if (e1.type == "checkbox" && e1.checked == true) // This is our control Name
            {
                count1 += 1;
            }
        }
    }
    if (count1 == 0) {
        alert("You have not selected any record.");
        return false;
    }
    return true;
}

function IsSelectedAtleastOneActualDur() {
    var loTable2 = document.all("<%=Gridview2.ClientID%>"); // GridView Name
    count2 = 0;
    with (document.forms[0]) {
        for (var i = 0; i < elements.length; i++) {
            var e2 = elements[i];
            if (e2.type == "checkbox" && e2.checked == true ) 
            {
                count2 += 1;
            }
        }
    }
    if (count2 == 0) {
        alert("You have not select any record.");
        return false;
    }
    return true;
}
函数是selectedAtleAstoneot(){
var loTable1=document.all(“”;//GridView名称
count1=0;
带(document.forms[0]){
对于(var i=0;i
以及ASP.net代码:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize ="10" AutoGenerateColumns="False"
    CellSpacing="1" DataSourceID="SqlDataSource1" CellPadding="2" 
    AllowSorting="True" DataKeyNames="ot_key" >
    <Columns>
         <asp:TemplateField>

 <ItemTemplate>
 <asp:CheckBox ID="chkSelect" runat="server"   />
 </ItemTemplate>
  </asp:TemplateField>

        <asp:HyperLinkField DataNavigateUrlFields="action,ot_key" DataNavigateUrlFormatString="{0}?id={1}"
            DataTextField="post_code" HeaderText="Staff" SortExpression="post_code" meta:resourcekey="GridView1_post_code"/>
    .......

    </Columns>
    <EmptyDataTemplate>
        <span style="font-size: 14pt; color: #990000">
        <asp:Localize runat="server" ID="text_no_record" Text="No records found." meta:resourcekey="text_no_record" />
        </span>
    </EmptyDataTemplate>
</asp:GridView>

<asp:Button ID="btnBatchUpdate" runat="server" Text="Batch Recommend/Approve Overtime Work"  
          OnClick="btnBatchUpdate_Click" 
          OnClientClick="return IsSelectedAtleastOneOT();" Visible="false" 
    Width="277px" meta:resourcekey="btnBatchUpdate" />

<asp:GridView ID="GridView2" runat="server" AllowPaging="True" AutoGenerateColumns="False"
    CellSpacing="1" DataSourceID="SqlDataSource3" CellPadding="2" AllowSorting="True" DataKeyNames="actual_dur_key"  PageSize ="10">
    <Columns>
         <asp:TemplateField>

 <ItemTemplate>
 <asp:CheckBox ID="chkSelectActual_dur" runat="server" />
 </ItemTemplate>
  </asp:TemplateField>

        <asp:HyperLinkField DataNavigateUrlFields="action,actual_dur_key" DataNavigateUrlFormatString="{0}?id={1}"
            DataTextField="post_code" HeaderText="Staff" SortExpression="post_code" meta:resourcekey="GridView2_post_code"/>
.....

    </Columns>
    <EmptyDataTemplate>
        <span style="font-size: 14pt; color: #990000">
        <asp:Localize runat="server" ID="text_no_record" Text="No records found." meta:resourcekey="text_no_record" />
        </span>
    </EmptyDataTemplate>
</asp:GridView>       

<asp:Button ID="btnBatchUpdateActualDur" runat="server" Text="Batch Recommend/Approve Actual Duration"  
          OnClick="btnBatchUpdateActualDur_Click" 
          OnClientClick="return IsSelectedAtleastOneActualDur();" 
    Visible="false" Width="276px" meta:resourcekey="btnBatchUpdateActualDur"/>

.......
.....

根据我的理解,您希望在单击两个批处理按钮时验证两个网格视图。因此,只需将两个java脚本组合为一个函数,或者创建另一个javascript函数,该函数将检查这两个函数并返回如下所示的有效结果

function IsSelectedBoth()
{
     if(IsSelectedAtleastOneOT() && IsSelectedAtleastOneActualDur())
        return true;
     else
        return false;
}
对于这两个按钮,添加与IsSelectedBoth()相同的onClientclick函数