新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:将复合控件子控件事件上传到顶层的例子将复合控件子控件事件上传到顶层的例子

将复合控件子控件事件上传到顶层的例子将复合控件子控件事件上传到顶层的例子

新客网 XKER.COM 2004-12-20 来源: 收藏本文
这是一个选择省份然后将点击事件上传到控件顶层在页面处理事件的一个例子。加粗部分是整个上传事件过程。上传事件(暴露事件)、暴露属性、复杂属性管理、样式管理等是asp.net服务器自定义控件的高级主题。
using System;
using System.Web;
using System.Web.UI;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI.WebControls;
using System.ComponentModel;
using Yeno.EnBiz.News.Tools;

namespace Yeno.EnBiz.News.Controls
{
/// <summary>
/// ResearchCtrl 的摘要说明。
/// </summary>
[ToolboxData("<{0}:LocalCtrl_Province runat=server></{0}:LocalCtrl_Province>")]
public class LocalCtrl_Province : System.Web.UI.WebControls.WebControl,INamingContainer
{
private TableCell _Province;
public event CommandEventHandler ClickProvince;

/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>

protected override void Render(HtmlTextWriter writer)
{
AddAttributesToRender(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding,"5",false);
writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing,"0",false);
writer.AddAttribute(HtmlTextWriterAttribute.Width,"100%",false);
writer.RenderBeginTag(HtmlTextWriterTag.Table);

writer.RenderBeginTag(HtmlTextWriterTag.Tr);
_Province.RenderControl(writer);
writer.RenderEndTag();

writer.RenderEndTag();
}
protected override void CreateChildControls()
{
if(!Page.IsPostBack)
{
Controls.Clear();
ClearChildViewState();
}

_Province=new TableCell();

CreateProvince();


this.Controls.Add(_Province);
}
protected void CreateProvince()
{
DataTable dtb=(DataTable)DataCall.RunSqlSP("N_Province_GetAll",ReturnType.ExecuteReader);
for(int i=0;i<dtb.Rows.Count;i++)
{
LinkButton lb=new LinkButton();
lb.Text=dtb.Rows[i]["PROVINCE"].ToString().Trim();
lb.CausesValidation=false;
lb.CommandArgument=dtb.Rows[i]["ID"].ToString();
lb.Command +=new CommandEventHandler(Province_Command);
_Province.Controls.Add(lb);
_Province.Controls.Add(new LiteralControl("&nbsp;"));
}
dtb.Dispose();
}
protected void Province_Command(Object sender,CommandEventArgs e)
{
OnClickProvince(e);
}
protected void OnClickProvince(CommandEventArgs e)
{
if(ClickProvince!=null)
{
ClickProvince(this,e);
}
}
}
}



收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐