我在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状态。如何启用和显示控件。
答案 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.
}
}