中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

Asp.net自定義控件之單選/多選控件
來源:易賢網 閱讀:1110 次 日期:2016-08-06 13:49:51
溫馨提示:易賢網小編為您整理了“Asp.net自定義控件之單選/多選控件”,方便廣大網友查閱!

本文實例為大家分享了Asp.net單選、復選框控件的具體實現代碼,供大家參考,具體內容如下

將常用的jquery插件封裝成控件也是個不錯的選擇。

先看看效果:

名單

1.新建類庫項目,創建數據源類

[Serializable]

public class Select2Item

{

public bool Selected { get; set; }

public string Text { get; set; }

public string Value { get; set; }

public Select2Item() { }

public Select2Item(string text, string value)

{

 this.Text = text;

 this.Value = value;

}

public Select2Item(string text, string value, bool selected)

{

 this.Text = text;

 this.Value = value;

 this.Selected = selected;

}

2.創建控件類CheckList,繼承與WebControl,并定義 public List<Select2Item> Items數據項屬性。

3.引入腳本文件及樣式文件 

a.創建腳本或樣式文件,設置文件的屬性-生成操作-嵌入的資源

名單

b.需要在namespace上添加標記 [assembly: WebResource("命名空間.文件夾名.文件名", "mime類型")]

如:

[assembly: WebResource("Control.Style.checklist.css", "text/css",PerformSubstitution = true)]

[assembly: WebResource("Control.Scripts.checklist.js", "application/x-javascript")] 

如果css文件里面存在圖片的話,同樣將圖片設置為嵌入的資源,在css中的寫法為<%=WebResource("命名空間.文件夾名.文件名")%> 

PerformSubstitution 表示嵌入式資源的處理過程中是否分析其他Web 資源 URL,并用到該資源的完整路徑替換。

c.重寫protected override void OnPreRender(EventArgs e),引入嵌入的腳本或樣式文件

if(Page!=null) Page.Header.Controls.Add(LiteralControl),將<script><link>標簽放到LiteralControl中,然后將LiteralControl添加到Page.Header中,最后在頁面里你就會看到引入的<script><link>標簽。

protected override void OnPreRender(EventArgs e)

{

 if (this.Page != null)

 {

 StringBuilder sbb = new StringBuilder();

 sbb.Append(string.Format(STYLE_TEMPLATE, Page.ClientScript.GetWebResourceUrl(this.GetType(), "HandControl.Style.checklist.css")));

 sbb.Append(string.Format(SCRIPT_TEMPLATE, Page.ClientScript.GetWebResourceUrl(this.GetType(), "HandControl.Scripts.checklist.js")));

 bool hascss = false;

 LiteralControl lcc = new LiteralControl(sbb.ToString());

 lcc.ID = "lccheck";

 foreach (Control item in Page.Header.Controls)

 {

  if (item.ID == "lccheck")

  hascss = true;

 }

 if (!hascss)

  Page.Header.Controls.Add(lcc);

 }

 base.OnPreRender(e);

4.重寫控件的protected override void Render(HtmlTextWriter writer)方法

這里主要是渲染控件的html,根據你的控件而定。 

protected override void Render(HtmlTextWriter writer)

{

 if (Items.Count > 0)

 {

 writer.Write("<div id='div" + this.ClientID + "' class='c01-tag-div' mul='" + (Multiple == true ? "1" : "0") + "'>");

 if (Multiple == false)

  writer.Write("<input name='tb" + this.ClientID + "' type='hidden' value='" + Items[0].Value + "' />");

 else

  writer.Write("<input name='tb" + this.ClientID + "' type='hidden' />");

 bool first = true;

 foreach (var item in Items)

 {

  if (Multiple == false)

  {

  if (item.Selected && first)

  {

   writer.Write("<a title='" + item.Text + "' class='c01-tag-item c01-tag-select' val='" + item.Value + "' tag='Y'>" + item.Text + "</a>");

   first = false;

  }

  else

  {

   writer.Write("<a title='" + item.Text + "' class='c01-tag-item' val='" + item.Value + "' tag='N'>" + item.Text + "</a>");

  }

  }

  else

  {

  if (item.Selected)

   writer.Write("<a title='" + item.Text + "' class='c01-tag-item c01-tag-select' val='" + item.Value + "' tag='Y'>" + item.Text + "</a>");

  else

   writer.Write("<a title='" + item.Text + "' class='c01-tag-item' val='" + item.Value + "' tag='N'>" + item.Text + "</a>");

  }

 }

 writer.Write("</div>");

 }

5.添加GetSelected方法,返回List<Select2Item>,添加GetSelectValue,返回String(多選以,號隔開)       

public List<Select2Item> GetSelected()

{

 if (Page != null)

 {

 var values = Page.Request.Form["tb" + this.ClientID].Split(',');

 var res = Items.Where(t => values.Contains(t.Value)).ToList();

 foreach (var item in Items)

 {

  if (res.Contains(item))

  {

  item.Selected = true;

  }

  else

  {

  item.Selected = false;

  }

 }

 return res;

 }

 else

 {

 return null;

 }

-------------------------------------------

public string GetSelectValue()

{

 if (Page != null)

 {

 return Page.Request.Form["tb" + this.ClientID];

 }

 return "";

6.保存狀態

你需要重寫兩個方法protected override object SaveViewState() 、protected override void LoadViewState(object savedState),旨在將Items數據項屬性保存到ViewState 

protected override object SaveViewState()

{

 var valuestr = Page.Request.Form["tb" + this.ClientID];

 if (!string.IsNullOrEmpty(valuestr))

 {

 var values = valuestr.Split(',');

 var temp = Items.Where(t => values.Contains(t.Value)).ToList();

 foreach (var item in temp)

 {

  item.Selected = true;

 }

 }

 return new object[] { base.SaveViewState(), Items };

}

protected override void LoadViewState(object savedState)

{

 object[] vState = (object[])savedState;

 if (vState[0] != null)

 base.LoadViewState(vState[0]);

 if (vState[1] != null)

 Items = (List<Select2Item>)vState[1];

7.單選和復選的設置,在js中控制

 添加屬性 

[Description("獲取和設置多選"), DefaultValue(true), Browsable(true), Category("雜項")]

public bool Multiple { get; set; }

 在OnPreRender代碼中你會發現Multiple屬性會影響div的mul屬性值,從而判斷是否多選(默認多選)

 8.其它說明

private static readonly string STYLE_TEMPLATE = "<link href=\"{0}\" rel=\"stylesheet\" type=\"text/css\" />\r\n";

 private static readonly string SCRIPT_TEMPLATE = "<script type=\"text/javascript\" src=\"{0}\"></script>\r\n";

效果圖:

名單

以上就是本文的全部內容,希望對大家的學習有所幫助

更多信息請查看網絡編程
易賢網手機網站地址:Asp.net自定義控件之單選/多選控件
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
欧美日韩一区国产| 国产午夜亚洲精品羞羞网站| 一个色综合导航| 一本一本a久久| 欧美一区二区在线免费观看| 久久综合伊人77777| 欧美日韩国产一区二区三区| 国产一区欧美| 中文在线一区| 欧美激情视频在线播放| 国产精品亚洲综合| 日韩系列欧美系列| 女女同性精品视频| 国产一区二区三区av电影| 在线亚洲观看| 欧美精品在线观看播放| 伊人夜夜躁av伊人久久| 亚洲欧美日韩在线不卡| 欧美日韩免费一区二区三区视频 | 日韩网站在线| 免费观看成人www动漫视频| 国产日韩欧美综合精品| 亚洲深夜影院| 欧美精品一区二区三区高清aⅴ| 国产一区二区精品在线观看| 亚洲与欧洲av电影| 欧美日韩国产经典色站一区二区三区| 国内精品免费午夜毛片| 午夜在线播放视频欧美| 国产精品高潮粉嫩av| 一区二区三区精密机械公司| 欧美精品免费在线| 99精品视频免费| 欧美精品一区二区三区一线天视频| 伊人久久婷婷色综合98网| 久久久伊人欧美| 在线成人av| 欧美高清视频一区二区| 亚洲黑丝在线| 欧美日韩国产一区二区| 亚洲一级片在线看| 国产毛片一区二区| 久久裸体艺术| 最新中文字幕一区二区三区| 欧美人与禽性xxxxx杂性| 亚洲视屏在线播放| 国产亚洲精品一区二区| 麻豆成人综合网| 99视频精品| 国产日韩欧美精品在线| 久久综合色天天久久综合图片| 亚洲国产导航| 欧美区一区二区三区| 亚洲综合首页| 在线观看精品一区| 欧美日韩国产综合网| 午夜精品久久久久久久99黑人| 国产揄拍国内精品对白| 欧美国产免费| 香蕉久久夜色| 亚洲国产黄色片| 欧美日韩一级视频| 欧美专区在线观看| 亚洲精品综合| 国产手机视频精品| 欧美极品在线观看| 欧美一区二区在线免费播放| 激情五月婷婷综合| 欧美日韩在线影院| 久久久999精品免费| 99精品黄色片免费大全| 国产综合色产| 国产精品日韩一区二区| 免费人成网站在线观看欧美高清 | 欧美国产日韩一二三区| 亚洲一区二区黄| 在线精品亚洲| 国产乱子伦一区二区三区国色天香 | 亚洲一区二区av电影| 国内精品久久久久久久果冻传媒| 欧美韩日一区二区| 欧美中文字幕在线观看| 亚洲天堂黄色| 亚洲人成人一区二区三区| 国产日韩专区| 国产精品久久久久久妇女6080| 久久久久综合网| 小黄鸭精品密入口导航| 一区电影在线观看| 亚洲精品午夜| 一色屋精品亚洲香蕉网站| 国产精品久久久久久影院8一贰佰| 久久综合伊人77777麻豆| 午夜精品久久久久久99热软件| 亚洲乱码国产乱码精品精可以看| 韩国成人理伦片免费播放| 国产精品美女主播| 欧美午夜电影一区| 欧美视频在线观看一区| 欧美国产日韩精品| 欧美国产欧美综合| 欧美激情精品久久久久久久变态| 久久久综合免费视频| 久久精品国产成人| 久久国产欧美日韩精品| 欧美在线日韩精品| 欧美在线一级视频| 欧美专区在线| 久久精品伊人| 久久久久久久久蜜桃| 久久欧美中文字幕| 免费观看日韩av| 欧美国产专区| 欧美女同在线视频| 国产精品国产a级| 国产精品一区二区三区乱码 | 国产精品视频精品视频| 欧美在线精品免播放器视频| 久久狠狠婷婷| 亚洲一区不卡| 性色一区二区| 欧美成人性生活| 欧美中文字幕久久| 亚洲日本中文字幕| 激情综合色丁香一区二区| 亚洲精品一区二区三区av| 国产亚洲精品资源在线26u| 久久在线精品| 日韩一级大片在线| 欧美日韩一区二区三区四区五区| 国产精品综合久久久| 老司机精品视频网站| 欧美日韩视频| 国产亚洲aⅴaaaaaa毛片| 久久久精品一区二区三区| 国产亚洲欧洲一区高清在线观看| 久热精品视频在线免费观看| 亚洲黄色一区| 国产女主播一区二区| 国产欧美日韩亚洲| 国产私拍一区| 欧美日韩精品一区二区天天拍小说| 欧美日本不卡视频| 国产情人节一区| 亚洲人成网站色ww在线| 亚洲欧美日韩人成在线播放| 久久久精品日韩| 国产精品扒开腿做爽爽爽视频| 国产婷婷色综合av蜜臀av| 亚洲剧情一区二区| 久久精品系列| 国产精品盗摄久久久| 亚洲国产精选| 久久久精品五月天| 国产精品久久久久99| 91久久中文| 久久综合婷婷| 国产日韩专区在线| 亚洲一区二区免费| 欧美日韩午夜剧场| 亚洲日本va在线观看| 久久躁日日躁aaaaxxxx| 国产日本欧美在线观看| 亚洲天堂偷拍| 欧美三级视频在线观看| 91久久精品www人人做人人爽| 久久精品国产综合| 国产一区二三区| 欧美在线国产精品| 国产精品伊人日日| 亚洲在线1234| 国产精品人人做人人爽人人添| 日韩一区二区免费看| 欧美电影资源| 亚洲国产cao| 欧美成人激情视频| 亚洲激情校园春色| 欧美激情久久久久久| 亚洲国产高清视频| 麻豆精品网站| 亚洲国产日韩欧美在线99| 久久久亚洲精品一区二区三区 | 亚洲精品美女久久久久| 麻豆久久精品| 一区二区三区在线看| 久久久久.com| 在线精品亚洲| 欧美韩日一区二区| 夜夜嗨网站十八久久| 欧美视频在线一区| 亚洲欧美精品在线| 韩国av一区二区三区四区| 久久免费精品视频| 亚洲国产经典视频| 欧美乱在线观看| 午夜视频在线观看一区二区| 国模精品一区二区三区色天香| 久久亚洲一区二区| 日韩视频在线免费| 国产亚洲精品久久久久动|