私のWebアプリケーション(asp.net & vbコード)では、私は2つの異なるgridviewを持っていました。 各gridviewには、バッチ更新用のレコードを選択するチェックボックスがあります。 次に、バッチ更新のための2つのボタンがあります.1つはGridview 1とGridview 2です。Javascript:2つの異なるGridviewチェックボックスのエラー
対応するバッチ更新ボタンをクリックすると、チェックボックスをオンにする必要があります。
私のコードは、対応するバッチ更新ボタンをクリックするとチェックボックスが選択されていない場合、エラーメッセージを表示することができます。
しかし、私はエラーが見つかりました。たとえば、gridview2チェックボックスをチェックしてからgridview1バッチ更新ボタンをクリックすると、エラーメッセージが表示されず、別のグリッドビューに関連するチェックボックスが表示されないようです。
次は私のコードです: 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;
}
と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"/>