用户控制文本框 - 从后面的ASPX代码启用和禁用

时间:2012-08-30 06:16:22

标签: c# asp.net user-controls

我在C#.Net工作。我正在使用ASPX Page和ASCX Page。在我的ASCX页面中,有一个文本框和HTML图像按钮。我想根据下拉列表选择的索引更改事件执行启用true和false进程。默认情况下,应禁用文本框,并且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状态。如何启用和显示控件。

1 个答案:

答案 0 :(得分: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.
            }
        }