How to use usercontrol - pass paramters
在线PhotoShop
http://uupoop.com/
In the previous chapter we created a UserControl, and now we will try using it for the first time. Pick a page in your project, or simply create a new one for the purpose, and open it. The first thing we have to do, is declare our UserControl. It can be done either in each page where it's used, or globally in the web.config file. There is no performance difference, but when declaring UserControls in the web.config file, the controls have to reside in a different directory than the page(s) using it.
For now, let's just declare it within the page. Add the following line below the standard page declaration:
for example:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="HorizontalMenuControl.ascx.cs" Inherits="WebApplication3.HorizontalMenuControl" %> <style> .menu_hor_list { background-color: #dff3ff; height: 35px; padding: 0px; margin: 0px; border-bottom: solid 1px #ddd; padding-top: 5px; } .menu_hor_list ul { padding: ; position: absolute; left: 35px; margin: ; text-align: left; } .menu_hor_list ul li { display: block; list-style: none; float: left; margin: 0px; padding-right: 3px; height: 35px; line-height: 35px; } .menu_hor_list ul li a { padding: 0px 15px 0px 15px; margin-left: 0px; display: block; float: left; font-size: .1em; text-decoration: none; color: #; background-position: top left; background-repeat: no-repeat; } .menu_hor_list ul li a:hover { text-decoration: underline; color: #ff006e; } .menu_hor_list ul li .selected_label { text-decoration: none; background-color: #fff; background-position: top left; cursor: pointer; border-left: solid 1px #ddd; border-right: solid 1px #ddd; border-top: solid 1px #ddd; } </style> <div id="menuDiv" class="menu_hor_list" runat="server"> </div> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.BindMenus(); } } public string ParentMenuId { get; set; } public string SelectedMenuId { get; set; } private void BindMenus() { DataSet ds = GetChildMenus(ParentMenuId); const string NameField = "Name"; const string URLField = "URL"; const string IdField = "Id"; StringBuilder sb = new StringBuilder(); sb.Append("<ul>"); ].Rows) { string strClass = this.SelectedMenuId == Convert.ToString(dr[IdField]) ? "class='selected_label'" : ""; sb.Append(string.Format("<li><a {0} href='{1}'>{2}</a></li>", strClass, Convert.ToString(dr[URLField]), Convert.ToString(dr[NameField]))); } sb.Append("</ul>"); menuDiv.InnerHtml = sb.ToString(); } private DataSet GetChildMenus(string parentId) { BllMenu bm = new BllMenu(); return bm.GetChildMenus(parentId); }
<style> .menu_list ul { margin-left: 30px; } .menu_list ul li { list-style: none; line-height: 40px; background: url("icon_arrow_blue.png") no-repeat left center; text-indent: 1em; font-size: 16px; } .menu_list ul li a { color: #1cA7FF; } .menu_list ul li a:hover { text-decoration: underline; color: #ff006e; } </style> <div id="verticalMenuDiv" class="menu_list" runat="server"> </div> protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { this.BindMenus(); } } public string ParentMenuId { get; set; } private void BindMenus() { DataSet ds = GetChildMenus(ParentMenuId); const string NameField = "Name"; const string URLField = "URL"; StringBuilder sb = new StringBuilder(); sb.Append("<ul>"); ].Rows) { sb.Append(string.Format("<li><a href='{0}'>{1}</a></li>", Convert.ToString(dr[URLField]), Convert.ToString(dr[NameField]))); } sb.Append("</ul>"); verticalMenuDiv.InnerHtml = sb.ToString(); } private DataSet GetChildMenus(string parentId) { BllMenu bm = new BllMenu(); return bm.GetChildMenus(parentId); }
If you look at the page now, you will see our UserControl in action, although the information will be a bit... limited. We will have to set a value for the properties we defined, for things to get just a bit more interestingly. Fortunately, it's very easy:
How to use:
<uc1:VerticalMenuControl runat="server" ID="VerticalMenuControl" ParentMenuId="1" />
<uc1:HorizontalMenuControl runat="server" ID="HorizontalMenuControl" ParentMenuId="1" SelectedMenuId="4" />
In the CodeBehind of the page, try something like this:
protected void Page_Load(object sender, EventArgs e) { // These values can come from anywhere, but right now, we just hardcode them MyUserInfoBoxControl.UserName = "Jane Doe"; MyUserInfoBoxControl.UserAge = ; MyUserInfoBoxControl.UserCountry = "Germany"; }
How to use usercontrol - pass paramters的更多相关文章
- [模拟电路] 2、Passive Band Pass Filter
note: Some articles are very good in http://www.electronics-tutorials.ws/,I share them in the Cnblog ...
- 一种开发模式:ajax + ashx + UserControl
一.ajax+ashx模式的缺点 在web开发过程中,为了提高网站的用户体验,或多或少都会用到ajax技术,甚至有的网站全部采用ajax来实现,大量使用ajax在增强用户体验的同时会带来一些负 ...
- Wpf usercontrol dispose
窗口关闭时组件"析构": public UserControl() { InitializeComponent(); ...
- Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' heade
XMLHttpRequest cannot load http://10.164.153.37:8050/WebService/WebService.asmx/wsGetStreetData. Res ...
- UvaLA 3938 "Ray, Pass me the dishes!"
"Ray, Pass me the dishes!" Time Limit: 3000MS Memory Limit: Unkn ...
- XAML UserControl的继承
欢迎访问Heroius博客:崩溃的脑壳查看文章原文! 前言 相信不少学习WPF和Silverlight的同学们都出于Winform的习惯,希望能够在新展示层框架中实现控件的继承.本文就是说明如何实现这 ...
- wpf的UserControl用户控件怎么添加到Window窗体中
转载自 http://www.cnblogs.com/shuang121/archive/2013/01/09/2853591.html 我们来新建一个用户控件UserControl1.xaml &l ...
- WPF 弹出UserControl
UserControl正常情况下是不能被弹出的,而编写好的UserControl页面,为了查看效果,又需要弹出. 为了解决这个问题,UserControl需要一个Windows来接收. var win ...
- WPF中UserControl和DataTemplate
最新更新: http://denghejun.github.io 前言 前言总是留给我说一些无关主题的言论,WPF作为全新Microsoft桌面或web应用程序显示技术框架, 从08年开始,一直到现在 ...
随机推荐
- thinkphp添加空数据的解决办法
thinkphp真是个麻烦的东西,各种小问题,其中字段映射的表单名不能与数据库的字段名称相同,否则会添加空数据! 还有自动完成的名称要与字段映射后的名称相同,否则自动完成不会起作用! 还有自动验证的字 ...
- mysql语句中有引号的问题解决方案
在mysql的查询.修改.插入.删除的sql语句里有引号如何处理? 例如: <? $name = "my name is xcxc"; $people = "i'm ...
- poj3292-Semi-prime H-numbers(筛法打表)
一,题意: 一个H-number是所有的模四余一的数.(x=4*k+1) 如果一个H-number是H-primes 当且仅当它的因数只有1和它本身(除1外). 一个H-number是H-semi ...
- video
<div class="index-video-wrapper"> <video autoplay loop poster="img/index-ima ...
- Linux内核设计第四周——扒开系统调用三层皮
Linux内核设计第四周 ——扒开系统调用三层皮 一.知识点总结 (一).系统调用基础知识 1.用户态和内核态 内核态:在高级别的状态下,代码可以执行特权指令,访问任意的物理地址: 用户态:在相应的低 ...
- JavaScript单元测试框架-Jasmine
Jasmine的开发团队来自PivotalLabs,他们一开始开发的JavaScript测试框架是JsUnit,来源于著名的JAVA测试框架JUnit.JsUnit是xUnit的JavaScript实 ...
- iOS:融云即时通讯快速集成
一.介绍 即时通讯在众多社交软件.生活软件以及教育软件中已经是必备的功能了,在当前国内,即时通讯SDK做的比较不错的有那么几家,例如环信SDK.融云SDK...,这两家做的都很不错,各有千秋吧,要是真 ...
- Android-Activity使用(2) -传值
一.简单传值 1.修改MainActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...
- ASP.NET 5
docs.asp.net installing on windows Choosing the Right .NET For You on the Server DotNetCore: DotNetC ...
- linux下用户账户切换
1,)当前我已经登录一个用户hadoop,我怎么切换到root账户呢(应为一般用户经常会遇到无权限修改/etc/hosts./ect/hostname等文件的权限)? 使用命令sudo su root ...