国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

用C#寫一個Web自定義控件

2024-07-21 02:18:06
字體:
來源:轉載
供稿:網友
原來寫的用戶控件,但是維護太麻煩,后來就寫了一個自定義控件,比較好維護,使用也方便多了。
該控件是一個時間控件,通過下拉列表框選擇時間的年、月、日、時、分、秒。初始化時要提供可選時間的
起始年份。

源代碼如下:

using system;
using system.web.ui;
using system.web.ui.webcontrols;
using system.componentmodel;
using system.componentmodel.design;

namespace usertime
{
/// <summary>
/// 用戶自定義時間控件,取到年、月、日、時、分、秒
/// </summary>
[defaultproperty("text"),
toolboxdata("<{0}:clsusertime runat=server></{0}:clsusertime>")]
//inamingcontainer為子控件提供了一個新的命名范圍,保證子控件的id唯一性
public class clsusertime : system.web.ui.webcontrols.webcontrol, inamingcontainer
{
private system.web.ui.webcontrols.dropdownlist ddlyear;
private dropdownlist ddlmonth;
private dropdownlist ddlday;
private dropdownlist ddlhour;
private dropdownlist ddlminite;
private dropdownlist ddlsecond;

private static int beginyear = 0; //起始年號,這里必須使用static以防二次調用后變量被清零
private static bool isinit = false; //是否已經初始化過,這里必須使用static以防二次調用后變量被清零

public int year //取控件時間:年
{
get
{
return ddlyear.selectedindex + beginyear;
}
}

public int month //取控件時間:月
{
get
{
return ddlmonth.selectedindex + 1;
}
}

public int day //取控件時間:日
{
get
{
return ddlday.selectedindex + 1;
}
}

public int hour //取控件時間:時
{
get
{
return ddlhour.selectedindex;
}
}

public int minite //取控件時間:分
{
get
{
return ddlminite.selectedindex;
}
}

public int second //取控件時間:秒
{
get
{
return ddlsecond.selectedindex;
}
}

//用起始年號初始化控件,如果已經初始化過控件,直接返回
public void initcontrols(int startyear, int endyear)
{
if (isinit)
{
return;
}
ensurechildcontrols();
if (startyear > endyear)
{
int tmp = startyear;
startyear = endyear;
endyear = startyear;
}
beginyear = startyear;
for (int i = startyear; i <= endyear; ++i)
{
ddlyear.items.add(i.tostring());
}
for (int i = 1; i <=12; ++i)
{
ddlmonth.items.add(i.tostring());
}
for (int i = 1; i <= 31; ++i)
{
ddlday.items.add(i.tostring());
}
for (int i = 0; i < 24; ++i)
{
ddlhour.items.add(i.tostring());
}
for (int i = 0; i < 60; ++i)
{
ddlminite.items.add(i.tostring());
ddlsecond.items.add(i.tostring());
}
isinit = true;
}
//重載controls屬性,取得controlcollection對象,該對象表示ui層次結構中的服務器控件的子控件
public override controlcollection controls
{
get
{
//確定服務器是否包含子控件
ensurechildcontrols();
return base.controls;
}
}

//動態創建子控件
protected override void createchildcontrols()
{
//創建年、月、日、時、分、秒下拉列表框
this.controls.clear();
ddlyear = new dropdownlist();
ddlyear.id = "ddlyear";
ddlyear.width = 54;

ddlmonth = new dropdownlist();
ddlmonth.id = "ddlmonth";
ddlmonth.width = 40;

ddlday = new dropdownlist();
ddlday.id = "ddlday";
ddlday.width = 40;

ddlhour = new dropdownlist();
ddlhour.id = "ddlhour";
ddlhour.width = 40;

ddlminite = new dropdownlist();
ddlminite.id = "ddlminite";
ddlminite.width = 40;

ddlsecond = new dropdownlist();
ddlsecond.id = "ddlsecond";
ddlsecond.width = 40;

this.controls.add(ddlyear);
this.controls.add(ddlmonth);
this.controls.add(ddlday);
this.controls.add(ddlhour);
this.controls.add(ddlminite);
this.controls.add(ddlsecond);

base.createchildcontrols ();
}

/// <summary>
/// 將此控件呈現給指定的輸出參數。
/// </summary>
/// <param name="output"> 要寫出到的 html 編寫器 </param>
protected override void render(htmltextwriter output)
{
//將要呈現的html屬性添加到指定的system.web.htmltextwriter中
addattributestorender(output);
output.addattribute(system.web.ui.htmltextwriterattribute.cellpadding, "0", false);

//制定一個表,把子控件排在一行上
output.renderbegintag(htmltextwritertag.table); //表
output.renderbegintag(htmltextwritertag.tr); //行

//年下拉列表框
output.renderbegintag(htmltextwritertag.td); //列
ddlyear.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("年");
output.renderendtag();

//月下拉列表框
output.renderbegintag(htmltextwritertag.td);
ddlmonth.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("月");
output.renderendtag();

//日下拉列表框
output.renderbegintag(htmltextwritertag.td);
ddlday.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("日");
output.renderendtag();

//時下拉列表框
output.renderbegintag(htmltextwritertag.td);
ddlhour.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("時");
output.renderendtag();

//分下拉列表框
output.renderbegintag(htmltextwritertag.td);
ddlminite.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("分");
output.renderendtag();

//秒下拉列表框
output.renderbegintag(htmltextwritertag.td);
ddlsecond.rendercontrol(output);
output.renderendtag();

output.renderbegintag(htmltextwritertag.td);
output.write("秒");
output.renderendtag();

output.renderendtag();
output.renderendtag();
}

public datetime gettime() //取得選定的時間
{
datetime time = new datetime(this.year, this.month, this.day, this.hour, this.minite, this.second, 0);
return time;
}

//清除控件里所有下拉列表框的值
public void clearcontrols()
{
ddlyear.items.clear();
ddlmonth.items.clear();
ddlday.items.clear();
ddlhour.items.clear();
ddlminite.items.clear();
ddlsecond.items.clear();
isinit = false;
}

//撤消對所有下拉列表框的選項
public void clearselection()
{
ddlyear.clearselection();
ddlmonth.clearselection();
ddlday.clearselection();
ddlhour.clearselection();
ddlminite.clearselection();
ddlsecond.clearselection();
}
}
}



最大的網站源碼資源下載站,

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汉中市| 朝阳市| 绥棱县| 芷江| 盐城市| 大余县| 临桂县| 金平| 沙雅县| 荣昌县| 连城县| 隆林| 建阳市| 合川市| 云阳县| 平南县| 聂荣县| 瑞丽市| 黔南| 湟源县| 青海省| 齐河县| 南平市| 磐石市| 新乡县| 黑山县| 临洮县| 永清县| 岳池县| 扶风县| 太白县| 乌拉特前旗| 柘荣县| 东丽区| 泾阳县| 牟定县| 日喀则市| 五峰| 溆浦县| 龙川县| 南丰县|