Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用户控制文本框-从ASPX代码隐藏启用和禁用_C#_Asp.net_User Controls - Fatal编程技术网

C# 用户控制文本框-从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

我在C#Net工作。我有ASPX页和ASPX页。在我的ASCX页面中,有一个文本框和HTML图像按钮。我想根据下拉选择的index changed事件执行启用true和false过程。默认情况下,文本框应被禁用,图像应为visibled 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; }
    }

值正在正确传递给属性。但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的值。