asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

Asp.net 2.0 为用户控件添加event


发布日期:2020年09月07日
 
Asp.net 2.0 为用户控件添加event
使用user control的好处自不必说

但是作为一个控件虽然实际上其中可能包含很多控件(服务端控件)但是一旦在页面中注册使用它就表现为一个独立的控件也就是说在编辑阶段其包含的控件我们是访问不到的或者说不能对其包含的控件进行控制

这个时候就要通过为控件添加属性和事件来提供对外的接口使得我们可以间接的控制其子控件用属性来控制其子控件的状态而我们可以在外部访问并改变属性值从而达到间接控制子控件的目的当然如果子控件发生了什么事件我们要想知道就可以通过public event来获得

此Demo演示了user control中datalist发生了selectedindex事件而我们在page中想利用这个事件那么就可以这样做

usercontrol: ucascx

<%@ControlLanguage=C#AutoEventWireup=trueCodeFile=ucascxcsInherits=uc%>

<asp:DataListID=dlshowrunat=serverRepeatDirection=HorizontalOnSelectedIndexChanged=dlshow_SelectedIndexChanged>

<ItemTemplate>

<asp:LinkButtonID=linkbtnrunat=serverCommandName=Select

Text=<%#ContainerDataItem%>>

</asp:LinkButton>

</ItemTemplate>

</asp:DataList>CS:

usingSystemCollectionsGeneric;

publicpartialclassuc:SystemWebUIUserControl

{

publiceventEventHandlerTabClick;

privateintindex;

publicintIndex

{

get{returnindex;}

set{index=value;}

}

protectedvoidPage_Load(objectsenderEventArgse)

{

List<string>list=newList<string>();

listAdd(tab);

listAdd(tab);

listAdd(tab);

listAdd(tab);

dlshowDataSource=list;

dlshowDataBind();

dlshowSelectedIndex=;

}

protectedvoiddlshow_SelectedIndexChanged(objectsenderEventArgse)

{

Labellbl=thisParentFindControl(lblshow)asLabel;

lblText=AccessParentPageControl;

index=dlshowSelectedIndex;

TabClick(thisnull);

}

}page:showucaspx:

<%@PageLanguage=C#AutoEventWireup=trueCodeFile=ShowUcaspxcsInherits=ShowUc%>

<%@RegisterTagPrefix=myTagName=tabSrc=~/ucascx%>

<!DOCTYPEhtmlPUBLIC//WC//DTDXHTMLTransitional//ENtransitionaldtd>

<htmlxmlns=>

<headrunat=server>

<title>未命名页面</title>

</head>

<body>

<formid=formrunat=server>

<div>

<my:tabID=Mytabrunat=serverOnTabClick=Mytab_TabClick/>

<br/>

<asp:LabelID=lblshowrunat=serverText=Label></asp:Label>

</div>

</form>

</body>

</html>

CS:

publicpartialclassShowUc:SystemWebUIPage

{

protectedvoidPage_Load(objectsenderEventArgse)

{

}

protectedvoidMytab_TabClick(objectsenderEventArgse)

{

intindex=MytabIndex;

ResponseWrite(Youselectedtheindex+index);

}

}

上一篇:FCKeditor 2.6在ASP.NET中的配置方法

下一篇:Asp.net自动返回上次请求页面