有关C#+ASP.NET中用户控件(webusercontrol)使用问题2则

本文详细介绍了如何在C# ASP.NET项目中,从Default.aspx页面访问并控制Site.Master中引用的WebUserControl。通过在页面中注册控件,然后使用FindControl方法获取实例,可以实现对用户控件内部组件如Label和TreeView的操控。此外,还展示了设置控件属性和事件处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、如何在页面中访问在Site.Master中引用到的用户控件。

这里假设给定三个页面:Site.Master、Default.aspx和WebUserControl.ascx。Site.Master是Default.aspx页面中使用到的页面模板,WebUserControl是Site.Master模板页中使用的用户自定义控件类。

问题:在Default.aspx.cs代码中访问到Site.Master中用到的WebUserCotrol实例。

解决办法:

       1、在Default.aspx页面中增加下面的标签说明:

        <%@ Register src="WebUserControl.ascx" tagname="WebUserControl" tagprefix="uc1" %>

       2、在Default.aspx.cs中需要访问到该用户控件的地方使用下面的代码:

       WebUserControl uc = (WebUserControl)Master.FindControl("WebUserControl1");
        if (uc != null)
        {
             //具体的操作代码
        }

        注:WebUserControl1是Site.Master中使用的WebUserControl实例ID。


二、如何在页面中控制在Site.Master中引用到的用户控件。

问题:如前所述,我们已经可以访问到模板页中用到的用户控件实例,那么如何控制用户控件内的组件呢,比如设置其中标签(Label)组件的文本显示,或当其中TreeView组件结点选择变化时做些处理。

解决办法:

       1、在WebUserControl.ascx申明设置标签组件文本显示的属性和设置TreeView组件SelectedNodeChanged的属性。代码如下:

    public EventHandler onSelNode
    {
        set
        {
            TreeView1.SelectedNodeChanged += value;
        }
    }

    public string Text
    {
        get
        {
            return Label1.Text;
        }
        set
        {
            Label1.Text = value;
        }
    }

    注:Label1和TreeView1是WebUserControl用到的Label和TreeView组件ID。

        2、在需要控制WebUserControl内组件的地方使用下面的代码:

        WebUserControl uc = (WebUserControl)Master.FindControl("WebUserControl1");
        if (uc != null)
        {

            uc.Text = "";
            uc.onSelNode = TreeView1_SelectedNodeChanged;
        }

        public void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
       {
            TreeView t = (TreeView)sender;
            if (t != null)
           {
              //在这里就可以访问到TreeView的任何属性了
           }
       }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值