0

aspx ページにチェックボックスがあり、コード ビハインドに oncheckedchanged イベント ハンドラがあります。私のaspxページは以下の通りです

<div align="center">
    <table width="500px">
        <tr>
            <td>
                <fieldset id="fs1" runat="server">
                    <legend>Type </legend>
                    <table>
                        <tr>
                            <td>
                                <asp:CheckBox ID="CBNPatient" runat="server" Text="New Patient" OnCheckedChanged="CBNPatient_CheckedChanged" AutoPostBack="true" />
                            </td>
                            <td>
                                <asp:CheckBox ID="CBNPhPatient" runat="server" Text="New Patient By Phone" OnCheckedChanged="CBNPhPatient_CheckedChanged" AutoPostBack="true" />
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                                <fieldset id="fsAdd" runat="server" visible="false">
                                    <table>

コード ビハインドでは、チェックボックス イベント ハンドラは次のようになります。

 protected void CBNPatient_CheckedChanged(object sender,EventArgs e  )
        {
            if (CBNPatient.Checked == true)
            {

                HtmlGenericControl fieldset = (HtmlGenericControl)Master.FindControl("fsAdd");
                fieldset.Visible = true;
                PatAdd = true;               

            }
            else
            {
                HtmlGenericControl fieldset = (HtmlGenericControl)Master.FindControl("fsAdd");
                fieldset.Visible = false;
                PatAdd = false;
            }

        }

        protected void CBNPhPatient_CheckedChanged(object sender, EventArgs e)
        {
            if (CBNPhPatient.Checked == true)
            {

                HtmlGenericControl fieldset = (HtmlGenericControl)Master.FindControl("fsAdd");
                fieldset.Visible = true;
                PhPatAdd = true;
            }
            else
            {
                HtmlGenericControl fieldset = (HtmlGenericControl)Master.FindControl("fsAdd");
                fieldset.Visible = false;
                PhPatAdd = false;
            }
        }

以下のようなコンパイル エラーが発生します。

'ASP.framepages_registration_raddock_aspx' には 'CBNPatient_CheckedChanged' の定義が含まれておらず、型 'ASP.framepages_registration_raddock_aspx' の最初の引数を受け入れる拡張メソッド 'CBNPatient_CheckedChanged' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?) チェックボックスフィールドセット内にあります。それは問題を引き起こしますか?

これについて私を助けてください。ありがとう、そうみゃ

4

1 に答える 1

0

ほら、これはまだ完全な答えではありませんが、注意すべき点がいくつかあります。

  1. 条件ステートメント ( ) にブール変数がある場合、それらをまたはifと比較する必要はありません。次のように、単にそれらをテストしますtruefalseif(CBNPatient.Checked)
  2. コードを見てください。チェックボックスの選択に応じてブール値を変更するだけで、同じロジックを実行しています。どちらの方法も、次のように大幅に簡略化できます。

        HtmlGenericControl fieldset = (HtmlGenericControl)Master.FindControl("fsAdd");
        fieldset.Visible = CBNPatient.Checked;
        PatAdd = CBNPatient.Checked;
    
于 2012-08-21T13:34:25.627 に答える