|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
今天去面试,被问到C#中的new关键字,看了那么多的书对new关键字还是有一定认识,回来又把new复习了一遍,发现了许多以前还不知道的细节。asp.net|控件|优化有些时分Asp.net控件默许形态下天生的html代码,不克不及满意一些特定的必要。好比
我们想让用户做一些选择,能够很简单的用以下代码完成
<asp:CheckBoxListrunat="server">
<asp:ListItemText="One"/>
<asp:ListItemText="Two"/>
<asp:ListItemText="Three"/>
</asp:CheckBoxList>
默许形态下CheckBoxList会将这些选项放在一个table标签里,可是大概有一般情形不合适利用table,而必要一个un-orderedlist(ul)。固然我们能够从头写一个承继于CheckBoxList的控件,可是利用ControlAdpater会更简单,而且另有一些分外的优点。
起首看一下完成:
1,写一个承继自WebControlAdapter的类,以下
usingSystem;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.Adapters;
publicclassRadioButtonListAdapter:WebControlAdapter
{
protectedoverridevoidRender(HtmlTextWriterwriter)
{
ListControltargetControl=this.ControlasListControl;
//Ifthecontrolthatthisadapterispointingtoisnot
//aListControl(RadioButtonListorCheckBoxList)then
//wedontwanttochangetherendering.
if(targetControl==null||targetControlisIRepeatInfoUser==false)
{
base.Render(writer);
return;
}
writer.WriteBeginTag("ul");
if(targetControl.CSSClass.Length>0)
{
writer.WriteAttribute("class",targetControl.CssClass);
}
writer.Write(">");
IRepeatInfoUserrepeaterInfo=(IRepeatInfoUser)this.Control;
for(inti=0;i<targetControl.Items.Count;i++)
{
writer.WriteFullBeginTag("li");
repeaterInfo.RenderItem(ListItemType.Item,i,newRepeatInfo(),writer);
writer.WriteEndTag("li");
}
writer.WriteEndTag("ul");
}
}
2,新建一个asp.net文件夹App_Browsers,在个中增加一个.browser文件,增加以下内容
<browsers>
<browserrefID="Default">
<controlAdapters>
<adaptercontrolType="System.Web.UI.WebControls.CheckBoxList"
adapterType="RadioButtonListAdapter"/>
<adaptercontrolType="System.Web.UI.WebControls.RadioButtonList"
adapterType="RadioButtonListAdapter"/>
</controlAdapters>
</browser>
</browsers>
好了,统统ok。注重到了没有?我们并没有改动先前的asp.net代码.这就是个十分主要的优点啊。
也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。 |
|