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

首頁 > 編程 > .NET > 正文

使用Control Adapters優(yōu)化Asp.net控件

2024-07-10 13:08:24
字體:
供稿:網(wǎng)友

有些時(shí)候asp.net 控件默認(rèn)狀態(tài)下生成的html代碼,不能滿足一些特定的需要。比如

我們想讓用戶做一些選擇,可以很容易的用如下代碼實(shí)現(xiàn)

<asp:checkboxlist runat="server">
   <asp:listitem text="one" />
   <asp:listitem text="two" />
   <asp:listitem text="three" />
</asp:checkboxlist>

默認(rèn)狀態(tài)下checkboxlist會(huì)將這些選項(xiàng)放在一個(gè)table標(biāo)簽里,但是也許有個(gè)別情況不適合使用table,而需要一個(gè)un-ordered list(ul)。當(dāng)然我們可以重新寫一個(gè)繼承于checkboxlist的控件,但是使用control adpater會(huì)更容易,并且還有一些額外的好處。

首先看一下實(shí)現(xiàn):

1, 寫一個(gè)繼承自webcontroladapter的類,如下

using system;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.adapters;
public class radiobuttonlistadapter : webcontroladapter
{
   protected override void render(htmltextwriter writer)
   {
       listcontrol targetcontrol = this.control as listcontrol;
       // if the control that this adapter is pointing to is not
       // a listcontrol (radiobuttonlist or checkboxlist) then
       // we don't want to change the rendering.
       if (targetcontrol == null || targetcontrol is irepeatinfouser == false)
       {
base.render(writer);
           return;
       }
       writer.writebegintag("ul");
       if (targetcontrol.cssclass.length > 0)
       {
         writer.writeattribute("class", targetcontrol.cssclass);
       }
       writer.write(">");
       irepeatinfouser repeaterinfo = (irepeatinfouser)this.control;
      for (int i = 0; i < targetcontrol.items.count; i++)
       {
           writer.writefullbegintag("li");
           repeaterinfo.renderitem(listitemtype.item, i, new repeatinfo(), writer);
           writer.writeendtag("li");
       }
       writer.writeendtag("ul");
   }
}

2,新建一個(gè)asp.net 文件夾 app_browsers,在其中添加一個(gè).browser文件,添加如下內(nèi)容

<browsers>
<browser refid="default">
       <controladapters>
           <adapter controltype="system.web.ui.webcontrols.checkboxlist"
              adaptertype="radiobuttonlistadapter" />
           <adapter controltype="system.web.ui.webcontrols.radiobuttonlist"
              adaptertype="radiobuttonlistadapter" />
       </controladapters>
   </browser>
</browsers>

好了,一切ok。注意到了沒有?我們并沒有改變先前的asp.net代碼.這就是個(gè)非常重要的好處啊。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 双牌县| 抚顺县| 肥城市| 会东县| 汶川县| 抚宁县| 栾川县| 甘南县| 达日县| 波密县| 同江市| 绿春县| 会昌县| 南澳县| 仙居县| 乾安县| 石狮市| 上林县| 山丹县| 灵武市| 紫金县| 乌兰察布市| 团风县| 灌云县| 凤翔县| 罗定市| 布尔津县| 伊宁县| 将乐县| 成都市| 内丘县| 客服| 博湖县| 五常市| 木里| 贺兰县| 泗水县| 延长县| 农安县| 旺苍县| 临颍县|