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

首頁 > 編程 > .NET > 正文

自定義阿ASP.NET CheckBox的設計思路

2024-07-10 13:09:37
字體:
來源:轉載
供稿:網友
  有人要問,你瘋了吧,checkbox控件還用寫你重寫嗎?沒辦法,最近做一個asp.net項目,寫開發模板的時候,需要這樣做!我的模板需要在前臺用javascript控制控件的值和狀態初始化,需要很多特殊的html attribute,記錄一些控制參數,但是ms提供的控件沒有這些屬性,因此連checkbox都要自己做了!我的checkbox的需求是:

  1: 包含所有的ms checkbox屬性方法和事件

  2: 此外,要對自己定義的checkbox加上enableflag,witowner等自定義屬性

  問題和解決思路如下:

  問題: 如果直接繼承ms的checkbox, 使用this.attributes.add("witowner","true") 語句給控件添加自定義屬性,屬性會添加到控件產生的<span>上,checkbox上沒有加上這個屬性,在前臺無法用javascript獲取該屬性,來控制checkbox.

  解決思路:如果繼承webcontrol,然后覆蓋render方法,在render的時候,用類似chkcheckbox.rendercontrol(writer); 的語句添加htmlinputcheckbox,再加一個文字label,應該可以用符合控件的方式模擬出ms checkbox,并且帶自己定義屬性的功能。但是,這個時候出現的問題是:無法把控件放到<span></span>中,設置控件背景顏色等屬性,無法針對控件生效! 解決辦法:

  為了滿足以上需求,控件繼承webcontrol, 覆蓋rendercontents,語法如下

/// <summary>
/// 繪制控件的內容,即:繪制span包含的部分,在rendercontents函數里面寫
/// 子控件的render,可以讓復合控件的span包含子控件,便于寫前臺script操作。
/// </summary>
/// <param name="writer"></param>
protected override void rendercontents(htmltextwriter writer)
{
 setgroupattributes();

 if(this.textalign==textalign.right)
 {
  chkcheckbox.id=this.clientid+"_checkbox";

  chkcheckbox.rendercontrol(writer);
 
  writer.write("<label for='"+chkcheckbox.id+"'>"+this.text+"</label>");
 }
 else
 {
  writer.write("<label for='"+chkcheckbox.id+"'>"+this.text+"</label>");
  chkcheckbox.id=this.clientid+"_checkbox";
  chkcheckbox.rendercontrol(writer);
 }
}

private void setgroupattributes()
{
 //所有的cswit控件都需要帶有這個屬性
 chkcheckbox.attributes.add("witowner","true");
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霸州市| 尼玛县| 安新县| 呼和浩特市| 平阳县| 鹰潭市| 邯郸市| 涟水县| 盐亭县| 隆尧县| 临沭县| 金湖县| 海晏县| 衡阳县| 辽源市| 建水县| 淮南市| 蒲城县| 原阳县| 商都县| 格尔木市| 宁海县| 武鸣县| 罗城| 农安县| 庆元县| 牙克石市| 读书| 陆河县| 兴国县| 常熟市| 金昌市| 南澳县| 吴江市| 岳池县| 体育| 怀集县| 永城市| 铁力市| 阳新县| 武安市|