zoukankan
html css js c++ java
Asp.net 2.0 为用户控件添加event(转)
使用user control的好处自不必说。 但是作为一个控件,虽然实际上其中可能包含很多控件(asp.net服务端控件),但是一旦在页面中注册使用,它就表现为一个独立的控件,也就是说在 编辑阶段,其包含的控件我们是访问不到的,或者说不能对其包含的控件进行控制。 这个时候,就要通过为控件添加属性和事件来提供对外的接口,使得我们可以间接的控制其“子控件”:用属性来控制其子控件的状态,而我们可以在外部访问并 改变属性值,从而达到间接控制子控件的目的;当然如果子控件发生了什么事件,我们要想知道,就可以通过public event来获得。 此Demo演示了,user control中datalist发生了selectedindex事件,而我们在page中想利用这个事件,那么就可以这样做:
usercontrol: uc1.ascx
<%
@ Control Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
uc1.ascx.cs
"
Inherits
=
"
uc1
"
%>
<
asp:DataList
ID
="dlshow"
runat
="server"
RepeatDirection
="Horizontal"
OnSelectedIndexChanged
="dlshow_SelectedIndexChanged"
>
<
ItemTemplate
>
<
asp:LinkButton
ID
="linkbtn"
runat
="server"
CommandName
="Select"
Text
='<%#Container.DataItem
%
>
'>
</
asp:LinkButton
>
</
ItemTemplate
>
</
asp:DataList
>
CS:
using
System.Collections.Generic;
public
partial
class
uc1 : System.Web.UI.UserControl
{
public
event
EventHandler TabClick;
private
int
index;
public
int
Index
{
get
{
return
index; }
set
{ index
=
value; }
}
protected
void
Page_Load(
object
sender, EventArgs e)
{
List
<
string
>
list
=
new
List
<
string
>
();
list.Add(
"
tab1
"
);
list.Add(
"
tab2
"
);
list.Add(
"
tab3
"
);
list.Add(
"
tab4
"
);
dlshow.DataSource
=
list;
dlshow.DataBind();
dlshow.SelectedIndex
=
0
;
}
protected
void
dlshow_SelectedIndexChanged(
object
sender, EventArgs e)
{
Label lbl
=
this
.Parent.FindControl(
"
lblshow
"
)
as
Label;
lbl.Text
=
"
Access Parent Page Control
"
;
index
=
dlshow.SelectedIndex;
TabClick(
this
,
null
);
}
}
page:showuc.aspx:
<%
@ Page Language
=
"
C#
"
AutoEventWireup
=
"
true
"
CodeFile
=
"
ShowUc.aspx.cs
"
Inherits
=
"
ShowUc
"
%>
<%
@ Register TagPrefix
=
"
my
"
TagName
=
"
tab
"
Src
=
"
~/uc1.ascx
"
%>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
<
head
runat
="server"
>
<
title
>
未命名頁面
</
title
>
</
head
>
<
body
>
<
form
id
="form1"
runat
="server"
>
<
div
>
<
my:tab
ID
="Mytab"
runat
="server"
OnTabClick
="Mytab_TabClick"
/>
<
br
/>
<
asp:Label
ID
="lblshow"
runat
="server"
Text
="Label"
></
asp:Label
>
</
div
>
</
form
>
</
body
>
</
html
>
CS:
public
partial
class
ShowUc : System.Web.UI.Page
{
protected
void
Page_Load(
object
sender, EventArgs e)
{
}
protected
void
Mytab_TabClick(
object
sender, EventArgs e)
{
int
index
=
Mytab.Index;
Response.Write(
"
You selected the index
"
+
index);
}
}
查看全文
相关阅读:
让WPF和SL控件同时支持绑定和赋值
VS2010下如何调试Framework源代码(即FCL)
使用Entity Framework和WCF Ria Services开发SilverLight之2:POCO
WPF快速指导15:动画
改善C#程序的建议5:引用类型赋值为null与加速垃圾回收
使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型
MVVM中的命令绑定及命令参数
改善C#程序的建议7:正确停止线程
Prism安装、MVVM基础概念及一个简单的样例
改善C#程序的建议8:避免锁定不恰当的同步对象
原文地址:https://www.cnblogs.com/lynnlin/p/1218162.html
最新文章
[转]什么是数据驱动编程
SaaS Introductioncoursera
Unix编程艺术——代码生成
Unix编程艺术——接口
xenmaster
Hadoop单机部署方法
Aptana深色主题(编辑js,css,html)
不以物喜不以己悲:很难修炼得道
新浪微博OAuth第三方登录C#源代码下载
使用Spring.NET统一ASP.NET异常处理并记录日志
热门文章
静态方法(Static)到底该不该用?
团队高效执行力从何而来?
Speed Tracer怎么使用?(Chrome插件:Web应用性能分析)
推荐:人生的跑道(转)
大众点评网架构变迁介绍(优酷)
做你想要成为的那个人《本杰明·巴顿奇事》
使用MVVM模式开发自定义UserControl
改善C#程序的建议9:使用Task代替ThreadPool和Thread
WPF中的EventTrigger和命令绑定
安全随笔1:谨慎一次MD5值的可被穷举性
Copyright © 2011-2022 走看看