国产探花免费观看_亚洲丰满少妇自慰呻吟_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();
}
}
}



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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涟源市| 中阳县| 沭阳县| 霍山县| 神木县| 阳江市| 吉林省| 旬邑县| 烟台市| 珲春市| 蓬安县| 五莲县| 多伦县| 贵南县| 涡阳县| 宜城市| 怀仁县| 阳朔县| 工布江达县| 丽江市| 济南市| 锦屏县| 深圳市| 平武县| 土默特左旗| 舞阳县| 祁阳县| 英山县| 泽州县| 灵武市| 东海县| 峨山| 六盘水市| 赣榆县| 孝感市| 遂平县| 田林县| 光泽县| 宝山区| 武夷山市| 抚宁县|