【问题标题】:Make User Control hide/show使用户控制隐藏/显示
【发布时间】:2015-07-22 04:21:35
【问题描述】:

我有一个主页:Main.aspx 和 2 个用户控件 User1.ascx 和 User2.ascx。首先,我希望 User2.ascx 不可见。我在主页控件中有一个隐藏值。如果隐藏值的值不为空,则显示 user2.ascx。我已经在 user2.ascx 的 prerender 函数中输入了代码。

目前,我正在尝试什么

在 Main.aspx 中

<usercontrol:User1 runat="server" ID="user1control" Visible = "false"  />

由此, 在 User2 中,它只出现在 pageload 事件中,而不出现在 OnPreRender 中。

我的所有代码都在 OnPreRender 中

【问题讨论】:

    标签: c# asp.net user-controls


    【解决方案1】:

    试试这样的

    protected void btnToggle_Click(object sender, EventArgs e)
        {
            string s = btnToggle.Text;
    
            switch (s)
            {
                case "Hide":
                    btnToggle.Text = "Show";
                    break;
                case "Show":
                    btnToggle.Text = "Hide";
                    break;
            }
            ucDetails myControl = (ucDetails)Page.LoadControl("~/ucDetails.ascx");
            UserControlHolder.Controls.Add(myControl);
            myControl.Visible = !myControl.Visible;
        }
    

    您可以在 javascript 端创建它的另一个选项。您可以将用户控件包装在面板中并通过javascript函数隐藏和显示。通过css隐藏和显示。

    <script type="text/javascript">
        function hide() {
            document.getElementById("ResultPanel2").style.display = 'none';
        }
    </script>
    

    【讨论】:

    • 它在页面加载事件中出现,但在 onPreRender 中没有。为什么 ?如果我从我的 aspx 页面中删除 visible="false" 则一切正常。
    • 其实,现在我打算在主页中设置一个隐藏值。如果隐藏值的值不为空,则显示 user2.ascx。在页面加载中,什么都没有。只是为了调试,我保留了 string a = "5";看到它来到这里。
    【解决方案2】:

    我解决了。我在主页中保留了一个隐藏字段,并且在主页的加载事件中,我保留了一个条件,即如果该值不为空或为空,则user2.visible = true。这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-23
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-28
      • 1970-01-01
      相关资源
      最近更新 更多