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);
}
}
查看全文
相关阅读:
UVA 11997 K个最小和
UVALive 3135阿格斯
UVA 10635 王子和公主
UVA11991线性查询
UVA1339仿射和换位密码
UVA 10382喷水设施
LA2965字符串合并
FatMouse's Speed--hdu1160(dp+输出路径)
Dividing--hdu1059(动态规划)
Piggy-Bank--hdu1114(完全背包)
原文地址:https://www.cnblogs.com/lynnlin/p/1218162.html
最新文章
[JLOI2013]地形生成
[HNOI2012]排队
[HAOI2015]数字串拆分
[POI2015]Wycieczki
[SHOI2013]超级跳马
[HAOI2006]均分数据
[ZJOI2015]幻想乡战略游戏
[BZOJ3730]震波
树上游戏
今天任务05
热门文章
今天任务04
今天任务03
从典型用户到场景
今天任务02
今天任务
《构建之法》读后感03
《构建之法》读后感02
UVA11817计算几何+经纬度坐标转化
UVALive3905 流星
LA 3644易爆物
Copyright © 2011-2022 走看看