1

Visual Studio .Net 2003(yeeich)で古いWebアプリケーションを使用していますが、表示をTrueに設定しないチェックボックスに問題があります。

それはそのように宣言されています:

Protected WithEvents chkTraining As System.Web.UI.WebControls.CheckBox 

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox>

次の行を使用してデバッグしている場合:

chkTraining.Visible = True

それはうまくいきますが、次の行でこの値を確認すると、chkTraining.Visible = False。ここで何が起こっているのでしょうか?イベントが発生したり、他に何かが起こったりすることはありません...これは本当に私をループに投げ込んでいます。ご協力いただきありがとうございます。

4

3 に答える 3

5

コンテナの可視性がfalseに設定されている可能性があります。

于 2010-04-21T17:44:53.380 に答える
0

なぜそれを宣言するのですか?.aspx ページに配置する場合

<asp:CheckBox id="chkTraining" runat="server" Visible="False"></asp:CheckBox>

コードビハインドのIDを使用してアクセスします...

于 2010-04-21T17:52:05.653 に答える
0

runat="server" に言及していることがわかります。

したがって、ページがブラウザー (クライアント) に読み込まれると、ID「chkTraining」が別のものに変更されます...これは、サーバー コントロールの ID を変更する基本的な asp.net アクションです。

また、プロパティ セクションの ClientIdMode プロパティを確認します。静的または継承の場合、コードで述べたように取得できます。

ただし、 AutoId 、 Predictable などの他の値を使用した場合は、次のようにします。

これ、

<%=chkTraining.ClientID%>

クライアントIDを提供します。クライアント ID を取得したら、それを使用してそのコントロールのプロパティにアクセスできます。例えば、

var chk = document.getElementById('<%=chkTraining.ClientID%>');

if (chk.checked == true) {
        alert("checked");                
    }
    else {
        alert("unchecked");
    }
于 2011-12-17T10:46:29.597 に答える