VB.netアプリケーションでは、通常のASPコントロールで作成された複数のチェックボックスがあります。すなわち、<asp:CheckBox ID="cb3" runat="server" Checked="true" />
JavascriptでASPチェックボックスの状態を設定する方法は?
「すべてを選択」機能を実装しようとしていますが、いくつか問題があります。 JavascriptはInternet Explorer(v9)のチェックボックスの状態を変更していません。 IEの開発ツールでデバッグしようとしましたが、チェックボックスのchecked
プロパティがtrue
に設定されています。 (チェックしてみてください)JS:
function setCheckboxes(state)
{
var inputs = document.getElementsByTagName("input");
for (var i in inputs)
{
if (inputs[i].type == "checkbox")
{
// this line is definitely executed on the checkboxes
inputs[i].checked = state;
// this doesn't work either
//inputs[i].checked = (state ? "checked" : "");
}
}
}
document.getElementById("cbSelectAll").onclick = function() {
setCheckboxes(true);
return false;
}
document.getElementById("cbSelectNone").onclick = function() {
setCheckboxes(false);
return false;
}
Firefox(v11)で発生する2番目の問題です。上記のJSはうまく動作し、チェックボックスの選択を解除しますが、送信時には初期状態に設定されます。クリックして選択と選択を解除すると正常に機能します。これをどうやって解決するのですか?
編集:明確にするには、これは特に.netの問題です。基本的なHTMLだけではありません。私はチェックボックスとIE(デ)の基本的なページを試してみました。
更新2:より関連性の高い情報が含まれています。私はちょうどいくつかをチェックし、をクリックすると、チェックボックスはInternet Explorerで状態を変更するようには見えませんが、状態を保存すると送信されます。
私はTelerikグリッドビューを使用しており、そこにデータをバインドしています。ここでは、ASPXコードだ:各チェックボックスについては
<telerik:RadGrid ID="gridContacts" runat="server" Skin="Office2007" GridLines="None" AutoGenerateColumns="False">
<MasterTableView>
<RowIndicatorColumn>
<HeaderStyle Width="20px" />
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px" />
</ExpandCollapseColumn>
<Columns>
<telerik:GridBoundColumn DataField="id" DataType="System.String" UniqueName="id" Visible="False">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="name" DataType="System.String" UniqueName="name" HeaderText="Name">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="email" DataType="System.String" UniqueName="email" Visible="False">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="sms" DataType="System.String" UniqueName="sms" Visible="False">
</telerik:GridBoundColumn>
<telerik:GridTemplateColumn DataField="useemail" DataType="System.Boolean" UniqueName="useemail" HeaderText="Email">
<ItemTemplate>
<asp:CheckBox ID="cbEmail" runat="server" Checked='<%# Eval("useemail") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn DataField="usesms" DataType="System.Boolean" UniqueName="usesms" HeaderText="SMS">
<ItemTemplate>
<asp:CheckBox ID="cbSMS" runat="server" Checked='<%# Eval("usesms") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
<FilterMenu EnableTheming="True" Skin="Office2007">
<CollapseAnimation Duration="200" Type="OutQuint" />
</FilterMenu>
</telerik:RadGrid>
、出てくるHTMLはこれです:
<input name="ctl00$ContentPlaceHolder1$gridContacts$ctl00$ctl04$cbEmail"
class="Office2007 input" id="ctl00_ContentPlaceHolder1_gridContacts_ctl00_ctl04_cbEmail"
type="checkbox" CHECKED="checked" /><label class="Office2007 radfdCheckboxChecked"
for="ctl00_ContentPlaceHolder1_gridContacts_ctl00_ctl04_cbEmail" unselectable="on"> </label>
私はVS2008でプロジェクトをセットアップしました。この問題はありません。ターゲットバージョンは何ですか?これらのチェックボックスのチェックには何らかの出来事がありますか? – Snuffleupagus
@ user1090190私は実際にVS2005(バージョン8.0.50727.867)と.NETバージョン2.0.50727 SP2を使用しています。私の知る限り、チェックボックスのイベントはありません。 – DisgruntledGoat
私はまだ複製できないようです。もっと多くのページを投稿できますか、それとも機密情報ですか?ここには何か他のものがあります。 – Snuffleupagus