asp.net有时候常常用服务器绑定控件有些麻烦... 代码有些杂....using System; using System.Web.UI.WebControls; using System.Data; using System.Web.UI.HtmlControls; using System.Collections.Generic; using System.Web; using System.Text; namespace pub.mo { public class bind { private bind() { } #region Bind Repeater public static void repeater(string sql, Repeater dl) { using (IDataReader dr = dbhelp.read(sql)) { repeater(dr, dl); } } /// <summary> /// 分页绑定 /// </summary> /// <param name="fd">dd</param> /// <param name="um"></param> /// <param name="dl"></param> /// <returns></returns> public static fy repeater(fy_date fd, url_manager um, Repeater dl) { fy f = new fy(fd, um); f.suger_page_load(); repeater(f.fd.records, dl); return f; } public static void repeater(IDataReader dr, Repeater dl) { dl.DataSource = dr; dl.DataBind(); dr.Close(); } public static void repeater(DataTable dt, Repeater dl) { if (dt != null) { dl.DataSource = dt; dl.DataBind(); dt.Clear(); dt.Dispose(); } } public static void repeater(DataTable dt, Repeater dl, bool pB) { if (dt != null) { dl.DataSource = dt; dl.DataBind(); if (pB) { dt.Clear(); dt.Dispose(); } } } public static void repeater(DataRow[] drw, Repeater dl) { if (drw != null) { dl.DataSource = drw; dl.DataBind(); } } #endregion #region Bind DataList public static void datalist(string sql, DataList dl) { IDataReader dr; dr = dbhelp.read(sql); datalist(dr, dl); } public static void datalist(IDataReader dr, DataList dl) { dl.DataSource = dr; dl.DataBind(); } public static void datalist(DataTable dt, DataList dl) { dl.DataSource = dt; dl.DataBind(); dt.Clear(); dt.Dispose(); } #endregion #region Bind ListControl public static void listbox(DataTable dt, ListControl lb, string field_text, string field_value) { lb.DataTextField = field_text; lb.DataValueField = field_value; lb.DataSource = dt; lb.DataBind(); } public static void listbox(IDataReader dr, ListControl lb, string field_text, string field_value) { lb.DataTextField = field_text; lb.DataValueField = field_value; lb.DataSource = dr; lb.DataBind(); } public static void listcontrol(Dictionary<string, string> d, ListControl drop, string edit_value, string first_value, string first_text) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); foreach (string s in d.Keys) { ListItem drlist = new ListItem(); drlist.Text = d[s]; drlist.Value = s; if (edit_value == s) drlist.Selected = true; drop.Items.Add(drlist); } } public static void listcontrol(DataTable dt, ListControl drop, string edit_value, string field_value, string field_text, string first_value, string first_text, bool IsDispost) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); foreach (DataRow dr in dt.Rows) { ListItem drlist = new ListItem(); drlist.Text = dr[field_text].ToString(); drlist.Value = dr[field_value].ToString(); if (edit_value == dr[field_value].ToString()) drlist.Selected = true; drop.Items.Add(drlist); } if (IsDispost) { dt.Clear(); dt.Dispose(); } } #endregion #region Bind Html Select /// <summary> /// 绑定下拉列表 从数据库中读取 /// 服务器端 html控件 /// </summary> /// <param name="sql">sql 语句</param> /// <param name="drop">HtmlSelect</param> /// <param name="edit_value">编辑时内容</param> /// <param name="edit_value">值字段 如id</param> /// <param name="edit_value">内容字段 如name</param> /// <param name="first_value">第一个值</param> /// <param name="first_name">第一个内容</param> public static void htmlselect(string sql, HtmlSelect drop, string edit_value, string field_value, string field_text, string first_value, string first_text) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); DataTable dt = dbhelp.datatable(sql); foreach (DataRow dr in dt.Rows) { ListItem drlist = new ListItem(); drlist.Text = dr[field_text].ToString(); drlist.Value = dr[field_value].ToString(); if (edit_value == dr[field_value].ToString()) drlist.Selected = true; drop.Items.Add(drlist); } dt.Clear(); dt.Dispose(); } public static void htmlselect(DataTable dt, HtmlSelect drop, string edit_value, string field_value, string field_text, string first_value, string first_text) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); foreach (DataRow dr in dt.Rows) { ListItem drlist = new ListItem(); drlist.Text = dr[field_text].ToString(); drlist.Value = dr[field_value].ToString(); if (edit_value == dr[field_value].ToString()) drlist.Selected = true; drop.Items.Add(drlist); } dt.Clear(); dt.Dispose(); } /// <summary> /// /// </summary> /// <param name="dt"></param> /// <param name="drop"></param> /// <param name="edit_value"></param> /// <param name="field_value"></param> /// <param name="field_text"></param> /// <param name="first_value"></param> /// <param name="first_text"></param> /// <param name="IsDispost">是否清空DataTable 是:true 否false</param> public static void htmlselect(DataTable dt, HtmlSelect drop, string edit_value, string field_value, string field_text, string first_value, string first_text,bool IsDispost) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); foreach (DataRow dr in dt.Rows) { ListItem drlist = new ListItem(); drlist.Text = dr[field_text].ToString(); drlist.Value = dr[field_value].ToString(); if (edit_value == dr[field_value].ToString()) drlist.Selected = true; drop.Items.Add(drlist); } if (IsDispost) { dt.Clear(); dt.Dispose(); } } /// <summary> /// 静态 绑定下拉列表 HtmlSelect控件 /// 服务器端 HtmlSelect控件 /// </summary> /// <param name="d">Dictionary<string, string></param> /// <param name="drop">HtmlSelect</param> /// <param name="edit_value">编辑时的值</param> /// <param name="edit_value">第一个值</param> /// <param name="edit_value">第一个内容</param> public static void htmlselect(Dictionary<string, string> d, HtmlSelect drop, string edit_value, string first_value, string first_text) { if (!string.IsNullOrEmpty(first_text)) drop.Items.Add(new ListItem(first_text, first_value)); foreach (string s in d.Keys) { ListItem drlist = new ListItem(); drlist.Text = d[s]; drlist.Value = s; if (edit_value == s) drlist.Selected = true; drop.Items.Add(drlist); } } public static string htmlselect(Dictionary<string, string> d, string edit_value, string first_value, string first_text) { StringBuilder sbStr = new StringBuilder(); if (first_text.Length > 0) { sbStr.Append("<option value=/""); sbStr.Append(first_value); sbStr.Append("/">"); sbStr.Append(first_text); sbStr.Append("</option>"); } foreach (string s in d.Keys) { sbStr.Append("<option value=/""); sbStr.Append(s); sbStr.Append("/""); if (edit_value == s) { sbStr.Append(" selected=/"selected/""); } sbStr.Append(">"); sbStr.Append(d[s]); sbStr.Append("</option>"); } return sbStr.ToString(); } /// <summary> /// 绑定下拉列表 HtmlSelect控件 /// </summary> /// <param name="arr">数组</param> /// <param name="drop">HtmlSelect控件</param> /// <param name="b">是否value与text相同 true:否 false:是</param> public static void htmlselect(string[] arr, HtmlSelect drop, bool b) { if (b) { for (int i = 0; i <= arr.Length - 1; i++) { drop.Items.Add(new ListItem(arr[i], i.ToString())); } } else { for (int i = 0; i <= arr.Length - 1; i++) { drop.Items.Add(new ListItem(arr[i], arr[i])); } } } /// <summary> /// 主要用于日期 HtmlSelect /// </summary> /// <param name="n1">从n1</param> /// <param name="n2">到n2</param> /// <param name="select_n">选中的数字 不选中 -1或其它不可能出现的值</param> /// <param name="drop">HtmlSelect</param> public static void htmlselect(int n1, int n2, int select_n, HtmlSelect drop) { for (int i = n1; i <= n2; i++) { ListItem drlist = new ListItem(); drlist.Text = i.ToString(); drlist.Value = i.ToString(); if (select_n == i) drlist.Selected = true; drop.Items.Add(drlist); } } #endregion } }