C# 用户控制文本框-从ASPX代码隐藏启用和禁用
我在C#Net工作。我有ASPX页和ASPX页。在我的ASCX页面中,有一个文本框和HTML图像按钮。我想根据下拉选择的index changed事件执行启用true和false过程。默认情况下,文本框应被禁用,图像应为visibled false 这是我的ASPX页面加载C# 用户控制文本框-从ASPX代码隐藏启用和禁用,c#,asp.net,user-controls,C#,Asp.net,User Controls,我在C#Net工作。我有ASPX页和ASPX页。在我的ASCX页面中,有一个文本框和HTML图像按钮。我想根据下拉选择的index changed事件执行启用true和false过程。默认情况下,文本框应被禁用,图像应为visibled false 这是我的ASPX页面加载 ContentPlaceHolder cph = (ContentPlaceHolder)this.Page.Master.FindControl("ContentPlaceHolder1"); PI_CompLocat
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; }
}
值正在正确传递给属性。但textbox控件仅处于禁用模式,并且图像处于visible false状态。如何启用和显示控件。不要在
Page\u Load
事件中执行,而是在Page\u 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.
}
}
不要在
Page\u Load
事件中执行,而是在Page\u 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.
}
}
您同时使用了
启用
和可见
,这是帖子中的一个打字错误吗?是的……我对文本框使用启用,对html图像使用可见……我对PI_CompLocationTree1的范围很好奇?它是在aspx页面中定义的,还是使用嵌套母版页?您是否能够在不使用FindControl的情况下直接从页面访问PI_CompLocationTree1?根据这些条件,最佳答案可能会有所不同。您同时使用启用
和可见
,这是帖子中的一个打字错误吗?是的……我使用的是文本框启用,html图像可见……我很好奇PI_CompLocationTree1的范围?它是在aspx页面中定义的,还是使用嵌套母版页?您是否能够在不使用FindControl的情况下直接从页面访问PI_CompLocationTree1?根据这些条件,最佳答案可能会有所不同,我无法获得下拉选择的索引值…始终只有0作为所选索引…我们可以通过引入一些javascript代码来解决此问题,但首先在调试模式下运行应用程序,手动设置下拉值,然后查看是否出现所需的结果。“Dropdown selectedIndex属性在Page_Init事件之后绑定,但在Page_load之前,其值将从viewstate加载,其值将是您从ddl中选择的值。“因此,在您的情况下,编写一个javascript方法并在dropdown onchange事件中调用它,在该事件中,在隐藏字段中设置所选值,并在Page_Init事件中访问隐藏字段的值。Answer modified显示了如何在Page_Init事件中获取dropdown的值。在Page Init中,我无法获得下拉选择的索引值…始终只有0作为所选索引…我们可以通过引入一些javascript代码来解决此问题,但首先在调试模式下运行应用程序,手动设置下拉值,然后查看是否出现所需的结果。“Dropdown selectedIndex属性在Page_Init事件之后绑定,但在Page_load之前,其值将从viewstate加载,其值将是您从ddl中选择的值。“因此,在您的情况下,编写一个javascript方法并在dropdown onchange事件中调用它,在该事件中,在隐藏字段中设置所选值,并在Page_Init事件中访问隐藏字段的值。Answer modified显示了如何在Page_Init事件中获取dropdown的值。