10

10

c#自定义控件的例子

Aspx编程的时候经常会用到自定义控件,下面是一个例子。

using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;

namespace dogoo
{
[DefaultProperty("Text"),
ToolboxData("<{0}:head runat=server></{0}:head>")]
public class head : Control, INamingContainer
{
public Label label;
public Label div;
protected override void CreateChildControls() //这里加入包含的内容
{
base.CreateChildControls();
Controls.Add(new LiteralControl("<table align='center' width='800' class='border1'><tr><td align='left' style='width: 227px; height: 74px;'><a href=index.aspx><img src='image/logo.gif' style='width: 189px;height:59px' /></a></td><td align=right style='height: 74px; width: 542px;'><img src='image/ad1.gif' style='width: 560px;height:70px' /></td></tr><tr><td align=right colspan=2 style='width:800px; height: 6px;'>"));
Label Label1 = new Label();
Label1.Text = "label";
Controls.Add(Label1);//2

Controls.Add(new LiteralControl("</td></tr></table>"));//3
Label div = new Label();//4
Controls.Add(div);//5
Controls.Add(new LiteralControl("<link href='css/06dd.css' rel='stylesheet' type='text/css' />"));
Controls.Add(new LiteralControl("<SCRIPT language='JavaScript1.2' src='js/Boot.js' type='text/javascript'></SCRIPT>"));
Controls.Add(new LiteralControl("<SCRIPT language='JavaScript1.2' src='js/dgcommand.js' type='text/javascript'></SCRIPT>"));
}
protected override void OnPreRender(EventArgs e)
{
//应该是这写
/***********************生成标题*********************/
int i = 0;
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstr"]);
SqlConnection conn1 = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstr"]);
SqlCommand cmd;
SqlCommand cmd1;
cmd = conn.CreateCommand();
cmd1 = conn1.CreateCommand();
SqlDataReader dr;
SqlDataReader dr1;

cmd.CommandText = "select * from business";
conn.Open();
dr = cmd.ExecuteReader();
((Label)Controls[2]).Text = "<table border=0><tr>";
while (dr.Read())
{
((Label)Controls[2]).Text += "<td style='font-size: 10pt; width: 70px;' align=center><a href='' name=two-tabs|he|d" + dr["id"].ToString().Trim() + ">" + dr["bname"].ToString().Trim() + "</a></td>";
//生成弹出窗口开始
((Label)Controls[4]).Text += "<DIV style='DISPLAY: none'>";
((Label)Controls[4]).Text += "<DIV id=d" + dr["id"].ToString().Trim() + ">";
((Label)Controls[4]).Text += "<DIV style='BORDER-RIGHT: #aca976 1px solid; PADDING-RIGHT:8px; BORDER-TOP: #aca976 1px solid; PADDING-LEFT: 8px; PADDING-BOTTOM: 8px; BORDER-LEFT: #aca976 1px solid; WIDTH: 300px; PADDING-TOP: 5px; BORDER-BOTTOM: #aca976 1px solid; BACKGROUND-COLOR: #ffffff'>";
((Label)Controls[4]).Text += "<table width=300 bgcolor=white border=0 cellspacing=0 cellpadding=0><tr><td align=center colspan=5><a href=busy.aspx?id=" + dr["id"].ToString().Trim() + ">" + dr["bname"].ToString().Trim() + "</a></td></tr><tr>";
conn1.Open();
cmd1.CommandText = "select * from shops where businesid=" + dr["id"].ToString().Trim();
dr1 = cmd1.ExecuteReader();
while (dr1.Read())
{
((Label)Controls[4]).Text += "<td width=55 height=20><a href=shops.aspx?id=" + dr1["id"].ToString().Trim() + ">" + dr1["sname"].ToString().Trim() + "</a></td>";
if (i > 3)
{
((Label)Controls[4]).Text += "</tr><tr>";
i = -1;
}
i++;
}
conn1.Close();
((Label)Controls[4]).Text += "</tr></table></div></div></div>";
//生成弹出窗口结束
}
((Label)Controls[2]).Text += "</tr></table>";
conn.Close();
/***********************生成标题结束*********************/
}
public class CheckEventArgs : System.EventArgs
{

}
public delegate void CheckEventHandler(object sender, CheckEventArgs ce);
}

 




[本日志由 独木舟 于 2008-10-10 01:00 PM 编辑]
文章来自: 网络
引用通告: 查看所有引用 | 我要引用此文章
Tags: Code
相关日志:
评论: 0 | 引用: 0 | 查看次数: -
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.