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年开始,一直到现在 ...
随机推荐
- 【android tools】内存、网络、界面性能响应优化的工具
一.性能优化工具 性能分析,我理解有内存性能,IO性能, 界面性能,耗电等. 内存性能,用debuggable的app结合mat等专业工具可以分析.另外最近的Leakcanary很好用,但是要手动加入 ...
- hive中导入json格式的数据(hive分区表)
hive中建立外部分区表,外部数据格式是json的如何导入呢? json格式的数据表不必含有分区字段,只需要在hdfs目录结构中体现出分区就可以了 This is all according to t ...
- 移动端设备UA检测
网上找到的都不全,不是漏这个就是漏那个,有的甚至还把桌面的chrome判断为移动浏览器. 于是自己动手整理,这回算是比较全了.以后发现漏掉的立马加上. if(/AppleWebKit.*Mobile/ ...
- 如何在maven工程中加载oracle驱动
maven中引入oracle驱动报错Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 时间:2015年09月22日 浏览:9361次 在maven ...
- Android课程---Android设置透明效果的三种方法(转)
1.使用Android系统自带的透明效果资源 <Button android:background="@android:color/transparent"/> ...
- Windows内核 基本汇编指令
1)用VS2010新建Win32 Console Application,工程名为ACECore,工程建立完成后得到打开文件ACECore.cpp,代码如下: #include "stdaf ...
- JS-页面操作
--刷新页面 window.location.reload();
- Nginx 反向代理学习(一)
反向代理apache等http资源 ## Basic reverse proxy server ## upstream apachephp{ server 127.0.0.1:8560; #php5. ...
- openfire及xmpp简单介绍
一.oprenfire 1.openfire是采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议.可以使用它轻易的构建高效率的即时通信服务器. 2.Openfire安装和 ...
- Unity3D 系统宏
Platform Defines The platform defines that Unity supports for your scripts are: Property: Functi ...