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年开始,一直到现在 ...
随机推荐
- [LintCode] Valid Palindrome 验证回文字符串
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignori ...
- input相关问题总结
1. 禁止为所有被激活的输入框添加边框 *:focus {outline: none} 2. 禁止为被激活的输入框添加边框,说明:".abc"为输入框对象自定义添加的class类命 ...
- Jquery 捕捉页面关闭事件
(http://www.php100.com/html/program/jquery/2013/0905/6052.html) $(window).bind('beforeunload',functi ...
- shodan:黑客搜索引擎
Shodan是msfconsole创始人与几个爱好技术的黑客开发的一款黑客搜索引擎,被称为可怕的搜索引擎,详细介绍见百度百科 网站地址:www.shodan.io 免费注册一账号,无账号的话,默认只显 ...
- ASP.NET MVC中在Action获取提交的表单数据方法总结 (4种方法,转载备忘)
有Index视图如下: 视图代码如下: <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Mas ...
- php发送邮件处理功能页面去除重复的邮箱地址
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Ogre代码学习之1——Ogre中地形lod的基础:deltaHeight的计算
Ogre的地形系统中的重要概念:高度差,英文HeightDeltas,表示某个完整细节中的顶点,在某个它被隐去的lod中被插值之后的高度和原始高度(即高度图中的高度)之差. DeltaHeight = ...
- 10与元素亲密接触:盒元素(the box model)
line-height属性可以设置文本的行间距,可以用像素.em或百分比等于字体大小有关的值定义行间距line-height: 1.6em;(行间距为字体大小的1.6倍) CSS把每一个单一的元素看作 ...
- 【Composer】实战操作二:自己创建composer包并提交
大纲 创建自己的composer库 提交到指定平台 测试安装自己的库 设置composer平台自动更新 如何方便测试自己开发的库 开始动手 创建自己的composer库 个人博客后台有一部分是关于统计 ...
- 在Altium_Designer_PCB_中插入图片的方法
详细请看PDF: http://files.cnblogs.com/files/BinB-W/在Altium_Designer_PCB_中插入图片的方法.pdf 配套文件: http://files. ...