在子MasterPage设置UserControl内的Web控件属性
环境是这样的,一个MasterPage 如MP2(子)嵌套另一个MasterPage 如MP1(父)。一个UserControl 如MyUc,这个UserControl有一个Web控件,如TextBox1它初始状态为 Visible="false" ,它是拉在MP1的MasterPage上。 现在是要在MP2的MasterPage的page_Load控制UserControl内的TextBox显示与否。
这样的做法,就是所有使用MP1 MasterPage的网页对用户控件的TextBox是不可见,而使用MP2 MasterPage的网页对用户控件的TextBox是可见。
Insus.NET实现这个问题,也花上不少时间,虽然以前实现很多相似的,但都是有page内,而非是在MasterPage去操作。下面是实现过程:
写一个Interface(接口) ,设置用户控件内的TextBox是否显示,是让MyUc用户控件实作这个接口。
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for IVisible
/// </summary>
namespace Insus.NET
{
public interface IVisible
{
void SetVisible(bool show);
}
}
MyUc用户控件实作上面接口:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class MyUc : System.Web.UI.UserControl,IVisible
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void SetVisible(bool show)
{
this.TextBox1.Visible = show;
}
}
接下来,再写一个接口,接口写了一个bool的属性,设法让实作这个接口的物件实作这个属性。:
using System.Collections.Generic;
using System.Linq;
using System.Web;
/// <summary>
/// Summary description for ICtrlDisplay
/// </summary>
namespace Insus.NET
{
public interface ICtrlDisplay
{
bool ShowControl { set; }
}
}
因为MyUc UserControl 拉入MP1 MasterPage内。因此上面的接口ICtrlDisplay为之准备。
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class MP1 : System.Web.UI.MasterPage,ICtrlDisplay
{
protected void Page_Load(object sender, EventArgs e)
{
}
public bool ShowControl
{
set
((IVisible)this.MyUc1).SetVisible(value);
}
}
}
准备好上面过程,现在我们就可以以MP2的MasterPage的Page_Load事件中,控制到MyUc内的TextBox显示与否。
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;
public partial class SubDirectory_MP2 : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
((ICtrlDisplay)this.Master).ShowControl = true; ;
}
}
看看演示:
演示源程序:
http://download.cnblogs.com/insus/ASPDOTNET/mstpCtrlUc.rar
转载于:https://www.cnblogs.com/insus/archive/2012/02/22/2362830.html
在子MasterPage设置UserControl内的Web控件属性相关推荐
- 站点某些网页想显示母版页内的用户控件,某些网页不想显示,怎样实现
"我有一个站点,这个站点使用了masterpage,还两个用户控件(ascx),是拉至masterpage内的,一个是作为网页首(Header.ascx),另一个作为网页脚(Foot.asc ...
- 自定义服务器控件(扩展现有 Web 控件)
很多情况下,你并不需要从头开始创建一个新控件.有些功能也许在 ASP.NET 的 Web 控件的基本集合中已经存在了.所有这些控件都是普通类,你可以组合它们(使用其他类的实例来创建一个新类)或者继承它 ...
- 探讨ASP.NET2.0中的Web控件改进技术
全面探讨ASP.NET 2.0中的Web控件改进技术之概述(一) ASP.NET 2.0并没有抛弃1.1版本中的任何现有控件,而是增加了一组新的控件;同时还引入了若干新的控件开发技术.本系列文章将对这 ...
- 探讨ASP.NET 2.0中的Web控件改进技术(3)
当你最开始在Visual Studio 2005中使用Windows表单控件或是ASP.NET Web控件时,你首先会注意到,在许多控件右上角出现一个箭头形状的小玩意儿(见图2中的示例).点击这个箭头 ...
- 探讨ASP.NET2.0的Web控件改进之概述
作者: 朱先忠编译 一. 引言 到目前为止,你可能已经了解了大量的ASP.NET 2.0新特征-母版页面,主题,提供者,等等--所有这样内容都相当精彩:但是,你是否了解到有关定制Web控件开发方面的重 ...
- Html5table控件,Table Web 控件、TableRow Web 控件及TableCell Web 控件
Table Web 控件的用法和传统的HTML 的Table 元素差异很大,为了将网页设计对象导向,Table内的列和字段也都跟着对象化了.前面我们已经提过HTML 控件的HtmlTable.Html ...
- Ajax 1.0 中使用web控件调用后台方法的用法.
今天在做页面文本框审核的时候发现个Ajax 1.0 中使用web控件调用后台方法的一个不爽的地方. 把该调用方法发上来供大家参考. 首先我们创建一个MasterPage.master文件. 在页面上放 ...
- 使用 TreeView IE Web 控件
使用 TreeView IE Web 控件 摘要:了解 TreeView Web 控件,并学习如何在 ASP.NET Web 应用程序中使用 TreeView Web 控件.除了标准的 ASP.NET ...
- Asp.net 实现验证码功能的Web控件
Asp.net的设计方式和设计理念和其他的如Asp,Jsp,Php,Perl 等都不一样,几乎是完全的面向对象设计!代码的复用就是其 中差异较大的特点之一,Asp.net除了可以用Incl ...
- [UWP]实现一个轻量级的应用内消息通知控件
[UWP]实现一个轻量级的应用内消息通知控件 原文:[UWP]实现一个轻量级的应用内消息通知控件 在UWP应用开发中,我们常常有向用户发送一些提示性消息的需求.这种时候我们一般会选择MessageDi ...
最新文章
- python个人项目-个人项目 python实现
- C++ 异常处理Demo - win32 版
- python使用函数的目的_python之函数基本使用
- java 简单跳台阶和变态跳台阶
- Linux shell控制台改变显示前缀
- netflix测试能不能看_Netflix监管者测试–引入知事,准官员
- 数据产品-数据可视化工具Excel之数据透视表
- linux中网络编程1
- 【codevs2455】繁忙的都市
- 使用手机访问 Office 文档
- 145分计算机考研408复习复盘
- BOB靶机渗透实战-----攻略(大神勿喷)
- 如何重启Windows资源管理器
- AI绘图之基于文本/图片制图
- ubuntu中修改只读文件
- 拓扑容差如何修改_如何在CAD中通过设置容差参数对多段线进行自动修复重构
- visual studio装哪些_全球有哪些院校的平面设计好?
- 给我两小时,我能写很长长长长长长的APP测试用例!
- 海量工业数据如何应用?能源企业率先做了这些尝试
- excel隐藏的选项卡和命令栏怎么找回?