校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Asp.net自定義控件之單選、多選控件

Asp.net自定義控件之單選、多選控件

熱門標簽:蘇州如何辦理400電話 網絡電話外呼系統上海 臨沂智能電話機器人加盟 400電話辦理怎么樣 百應電話機器人外呼系統 西寧呼叫中心外呼系統線路商 地圖標注軟件免費下載 聯通官網400電話辦理 外呼電話機器人成本

本文實例為大家分享了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 ListSelect2Item> 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方法,返回ListSelect2Item>,添加GetSelectValue,返回String(多選以,號隔開)       

 public ListSelect2Item> 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 = (ListSelect2Item>)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自定義控件代碼學習筆記
  • asp.net 自定義控件實現無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖
  • Asp.net 動態加載用戶自定義控件,并轉換成HTML代碼
  • asp.net DropDownList自定義控件,讓你的分類更清晰
  • 關于asp.net 自定義分頁控件
  • ASP.NET單選按鈕控件RadioButton常用屬性和方法介紹
  • 淺談ASP.NET中最簡單的自定義控件
  • ASP.NET中 CheckBox復選框控件的使用
  • ASP.NET中CheckBoxList復選框列表控件詳細使用方法
  • ASP.NET中 RadioButtonList 單選按鈕組控件的使用方法

標簽:聊城 中衛 海西 平涼 慶陽 臨夏 清遠 甘肅

巨人網絡通訊聲明:本文標題《Asp.net自定義控件之單選、多選控件》,本文關鍵詞  Asp.net,自定義,控件,之,單選,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Asp.net自定義控件之單選、多選控件》相關的同類信息!
  • 本頁收集關于Asp.net自定義控件之單選、多選控件的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产精品88888| 亚洲成在人线免费| 色激情天天射综合网| 国产成人免费在线观看| 国产精品一级在线| 国产精品影视网| 粉嫩av一区二区三区| 国产一区亚洲一区| 国产剧情一区在线| 国产成人av自拍| 成人深夜在线观看| 91麻豆精品视频| 欧美日韩在线三级| 69久久99精品久久久久婷婷| 91麻豆精品国产自产在线观看一区| 欧美日韩成人在线| 日韩一区二区视频| 精品精品欲导航| 久久精品在线观看| 成人欧美一区二区三区黑人麻豆 | 国产精品久久久久久久久晋中| 久久亚洲精华国产精华液| 国产亚洲人成网站| 中文字幕一区在线| 亚洲第一久久影院| 精品一区二区三区在线播放视频| 国产一本一道久久香蕉| 色综合婷婷久久| 69久久夜色精品国产69蝌蚪网| 精品国产伦理网| 国产精品拍天天在线| 亚洲一区二区三区激情| 麻豆一区二区在线| 99久久精品免费看国产免费软件| 91国产精品成人| 欧美一二三区精品| 1000部国产精品成人观看| 午夜免费欧美电影| 国产电影一区二区三区| 欧美视频一区二区在线观看| 欧美精品一区二区久久久| 综合激情网...| 久草在线在线精品观看| 一本到三区不卡视频| 精品国产91洋老外米糕| 亚洲精品免费看| 国产在线麻豆精品观看| 在线精品国精品国产尤物884a| 日韩三级视频中文字幕| 亚洲欧美日韩人成在线播放| 精品一区二区三区日韩| 在线免费观看不卡av| 国产亚洲欧美一区在线观看| 性欧美大战久久久久久久久| 99综合电影在线视频| 欧美zozo另类异族| 香蕉久久一区二区不卡无毒影院| 波多野结衣一区二区三区| 精品乱码亚洲一区二区不卡| 亚洲尤物在线视频观看| 波多野结衣中文字幕一区二区三区| 在线播放欧美女士性生活| 亚洲视频你懂的| 成人手机电影网| 国产亚洲欧美一级| 国产一区二区久久| 日韩欧美国产一区二区在线播放| 亚洲精品福利视频网站| 99精品国产91久久久久久| 久久久久国产精品免费免费搜索| 麻豆免费精品视频| 91麻豆精品国产91久久久更新时间| 亚洲精品网站在线观看| 色悠久久久久综合欧美99| 国产精品国产三级国产aⅴ中文 | 中文字幕日本乱码精品影院| 激情久久久久久久久久久久久久久久 | 欧美人与z0zoxxxx视频| 一区二区三区四区蜜桃| 91啦中文在线观看| 亚洲天堂a在线| 91视频.com| 玉米视频成人免费看| 色综合久久久久久久| 亚洲免费色视频| 欧美少妇性性性| 日本最新不卡在线| 日韩精品在线看片z| 久久激情五月激情| 精品国产一区二区在线观看| 国产综合久久久久久久久久久久| 欧美成人精品福利| 国产一区二区不卡老阿姨| 久久久99精品久久| www.亚洲激情.com| 亚洲激情男女视频| 欧美一三区三区四区免费在线看 | 久久成人免费网站| 久久久一区二区| proumb性欧美在线观看| 亚洲综合在线免费观看| 欧美日本视频在线| 国内精品国产三级国产a久久| 国产精品色一区二区三区| 91在线观看高清| 五月天久久比比资源色| 欧美成人乱码一区二区三区| 成人精品小蝌蚪| 亚洲国产精品久久久久婷婷884| 欧美一区午夜视频在线观看| 懂色av一区二区三区免费看| 亚洲国产综合色| 久久久久久久综合| 91福利国产成人精品照片| 免费亚洲电影在线| 中文字幕制服丝袜一区二区三区| 欧美三级电影网| 国产1区2区3区精品美女| 午夜影院久久久| 欧美经典一区二区| 欧美网站一区二区| 岛国精品在线播放| 美腿丝袜在线亚洲一区| 亚洲欧美日韩一区| 久久综合久色欧美综合狠狠| 欧美伊人精品成人久久综合97 | 精品国产第一区二区三区观看体验| 99re热视频这里只精品| 久久精品国产秦先生| 亚洲精品v日韩精品| 久久综合色之久久综合| 欧美日本国产视频| 色综合久久综合网欧美综合网 | 一本色道久久综合精品竹菊| 精品制服美女久久| 婷婷中文字幕综合| 亚洲视频一区在线| 国产欧美日韩在线看| 欧美电影免费观看完整版| 欧美体内she精高潮| 99久久精品国产观看| 国产精品主播直播| 麻豆视频一区二区| 日韩国产欧美在线播放| 一区二区三区在线免费观看 | 蜜桃传媒麻豆第一区在线观看| 亚洲精品日日夜夜| 亚洲色图制服丝袜| 日本一区二区动态图| 久久久精品黄色| 精品日韩在线一区| 日韩一区二区在线免费观看| 欧美日韩aaa| 欧美日韩极品在线观看一区| 欧美伊人久久久久久午夜久久久久| 99免费精品视频| 成人精品亚洲人成在线| 成人性生交大片| 成人高清在线视频| 成人蜜臀av电影| 不卡一区二区在线| 97国产一区二区| 色欧美片视频在线观看在线视频| av影院午夜一区| 成人国产亚洲欧美成人综合网 | 91亚洲午夜精品久久久久久| av激情亚洲男人天堂| av资源网一区| 一本一本大道香蕉久在线精品| 91丨porny丨在线| 99re亚洲国产精品| 在线免费观看不卡av| 欧美网站大全在线观看| 欧美另类videos死尸| 91精品国产综合久久蜜臀| 日韩一区二区三区视频| 欧美va天堂va视频va在线| www国产精品av| 中文一区在线播放 | 老司机精品视频导航| 久久超级碰视频| 国产不卡视频在线播放| 99久久国产综合精品女不卡| 色综合天天综合网国产成人综合天| 在线视频国产一区| 91精品国产色综合久久不卡电影 | 国产一区中文字幕| 91亚洲国产成人精品一区二三| 色av一区二区| 欧美xingq一区二区| 中文字幕精品在线不卡| 一区二区免费看| 麻豆国产欧美日韩综合精品二区| 国产成人一区在线| 欧美日韩一区三区| 久久精品亚洲精品国产欧美| 一区二区三区视频在线观看| 久久99久久久欧美国产| a级高清视频欧美日韩| 精品视频1区2区|