C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: CheckBoxのCheckedChangedイベント


(過去ログ 30 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■14550 / inTopicNo.1)  CheckBoxのCheckedChangedイベント
  
□投稿者/ カシミヤ (7回)-(2008/02/21(Thu) 15:20:49)

分類:[.NET 全般] 

教えて下さい。

例えばですがフォーム上にいくつものパネルがありPage_Loadで
visible = falseで非表示にしてあります。
(MultiViewがあまりよく分からないので・・・)

非表示にしていないCheckBoxが複数あり
複数の内の1つだけをチェックすると非表示→表示になる様に
作りたいのですがわからず困っております。

ご教示を頂きたいと思います。

表示のイベントを発生させたいチェックボックスを「CheckBox1」として
prtected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
Panel1.Visible = true
}
として「AutoPostBack」をTrueにして実行すると

CheckBox1をチェックした時には非表示にしたPanel1はちゃんと表示されるのですが
すぐにCheckBox1のレ点が消えてしまいます。

何か足りないのでしょうか?

よろしくお願い致します。
引用返信 編集キー/
■14551 / inTopicNo.2)  Re[1]: CheckBoxのCheckedChangedイベント
□投稿者/ 七曜 (79回)-(2008/02/21(Thu) 15:49:15)
No14550 (カシミヤ さん) に返信

[aspx]
    <form id="form1" runat="server">
    <div>
    
        <asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="True" 
            oncheckedchanged="CheckBox1_CheckedChanged" />
        <asp:CheckBox ID="CheckBox2" runat="server" />
        <asp:CheckBox ID="CheckBox3" runat="server" />
        <br />
        <asp:Panel ID="Panel1" runat="server" Visible="False">
            <asp:CheckBox ID="CheckBox4" runat="server" />
            <asp:CheckBox ID="CheckBox5" runat="server" />
            <asp:CheckBox ID="CheckBox6" runat="server" />
        </asp:Panel>
    
    </div>
    </form>

[aspx.cs]
public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }

    protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        Panel1.Visible = (CheckBox1.Checked) ? true : false;
    }
}

Page_loadのコードでCheckBox1.Checkedにfalseを入れていたりしませんか。

引用返信 編集キー/
■14564 / inTopicNo.3)  Re[2]: CheckBoxのCheckedChangedイベント
□投稿者/ カシミヤ (8回)-(2008/02/21(Thu) 17:32:31)
No14551 (七曜 さん) に返信

七曜 さん
ありがとうございます。

> Page_loadのコードでCheckBox1.Checkedにfalseを入れていたりしませんか。
おっしゃる通りPage_Load時にFalseにしていました。

しかし、Page_Load1のPanel.Visible = falseを消しても
結果は同じで表示はされますがレ点は消えてしまう状態です。

七曜 さまにご記述頂いた
Panel1.Visible = (CheckBox1.Checked) ? true : false;
で実行するとチェックしても表示されず、レ点も消えてしまう状態です。

Page_Load時にmdbのデータYes/No型を表示するようになっているのですが
関係ありますでしょうか?

よろしくお願い致します。


引用返信 編集キー/
■14565 / inTopicNo.4)  Re[3]: CheckBoxのCheckedChangedイベント
□投稿者/ 七曜 (80回)-(2008/02/21(Thu) 18:11:59)
No14564 (カシミヤ さん) に返信
> Page_Load時にmdbのデータYes/No型を表示するようになっているのですが
> 関係ありますでしょうか?

Page_Loadは、Pageがロードされるたびに発生しますが、
mdbからの読み込みは初回だけで良いはずなので、

[Page.IsPostBack プロパティ (System.Web.UI)]
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.page.ispostback.aspx

を判定して、PostBackされた(IsPostBack=true)場合には、mdbのロードをしなければ良いのでは無いでしょうか。

mdbのデータとCheckBox1.Checkedの値が連動すべきであれば、変更時にmdbの値を更新する様にする事でも良いかと思います。

引用返信 編集キー/
■14569 / inTopicNo.5)  Re[4]: CheckBoxのCheckedChangedイベント
□投稿者/ カシミヤ (9回)-(2008/02/21(Thu) 20:05:46)
No14565 (七曜 さん) に返信

七曜さま

ありがとうございます。



PostBackプロパティは使用していなかった状態でしたので
ご教示頂いた通りにPostBackで判定して、trueの場合にはmdbのデータを読込しない方法をとらせて頂いた所
うまくいきました!

的確なアドバイスを頂き本当に助かりました!

ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -