1

私は C#.Net で作業しています。ASPX ページと ASCX ページがあります。私の ASCX ページには、テキスト ボックスと HTML イメージ ボタンがあります。ドロップダウンで選択されたインデックスの変更イベントに基づいて、真と偽の有効化プロセスを実行したいと考えています。デフォルトでは、テキストボックスを無効にし、Image を false で表示する必要があります。

これが私のASPXページロードです..

 ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1");
 PI_CompLocationTree userCntrl = (PI_CompLocationTree)cph.FindControl("PI_CompLocationTree1");
      userCntrl.TextBoxUSC = false;
      userCntrl.ImgUSC = false;

      if (analysisGroup.SelectedValue == "0")
       {
            userCntrl.TextBoxUSC = true;
            userCntrl.ImgUSC = true;
       }
      else if (analysisGroup.SelectedValue == "1")
       {
            userCntrl.TextBoxUSC = true;
            userCntrl.ImgUSC = true;
       }
      else
       {
            userCntrl.TextBoxUSC = false;
            userCntrl.ImgUSC = false;
       }

そして私のASCXコード..

public bool TextBoxUSC
    {
        set { txtLoc.Enabled = value; }
    }
    public bool ImgUSC
    {
        set { imgEdit.Visible = value; }
    }

値はプロパティに正しく渡されています。ただし、テキスト ボックス コントロールは無効モードのみで、画像は false で表示されます。コントロールを有効にして表示する方法。

4

1 に答える 1

1

Page_Loadイベントでやるのではなく、イベントでやるPage_Init

Page_Init イベントでドロップダウン リストの選択された値を取得するには、次の方法を使用できます。

if (Request["__EVENTTARGET"] != null)
        {
            string controlID = Request["__EVENTTARGET"];
            if (controlID.Equals(analysisGroup.ID))
            {
                string selectedValue =  Request.Form[Request["__EVENTTARGET"]].ToString();
                Session["SelectedValue"] = selectedValue; //Keep it in session if other controls are also doing post backs.
            }
        }
于 2012-08-30T06:52:18.193 に答える