BS常用方法备忘

时间:2023-03-09 06:09:44
BS常用方法备忘

在B/S项目开发过程中总结的一些常用方法,如:常量、验证方法、服务器控件方法、html控件方法等。

 ///******************* 说明 ***************************///
/// 作者:清风携夕阳
/// 时间:2014-09-29
/// 描述:Web服务端控件辅助类,程序开发过程中常用方法
///***************************************************///
using System;
using System.Data;
using System.Collections.Generic;
using System.Web.UI.WebControls;
namespace Common
{
/// <summary>
/// Web服务端控件辅助类
/// </summary>
[Serializable]
public static class WebHelper
{
#region 常量、静态变量
/// <summary>
/// 8位时间格式yyyymmdd
/// </summary>
public static string time8 = "yyyymmdd";
/// <summary>
/// 10位时间格式yyyy-mm-dd
/// </summary>
public static string time10 = "yyyy-mm-dd";
/// <summary>
/// 通用空值选项文本
/// </summary>
public static string emptySelect = "--请选择--";
#endregion
#region 验证、检测方法
/// <summary>
/// 验证sql匹配条件是否正确(若以and开头则自动去除)
/// </summary>
/// <param name="strWhere">sql匹配条件</param>
public static string CheckStrWhere(string strWhere)
{
string str = strWhere.TrimStart();//去除前置空格
if (str.ToLower().IndexOf("and ") == )//若以and开头则自动去除第一个and
{
strWhere = str.Substring();//若要保留前面一个空格,可以改为3
}
return strWhere;
}
#endregion
#region 服务端控件方法 #region CheckBoxList
/// <summary>
/// 获取CheckBoxList选中项数目
/// </summary>
public static int CheckedCount(CheckBoxList ckboxlist)
{
int count = ;
foreach (ListItem item in ckboxlist.Items)
{
if (item.Selected == true)
{
count++;
}
}
return count;
}
/// <summary>
/// 根据选项值选中CheckBoxList选项
/// </summary>
public static void SetChecked(CheckBoxList cboxlist, List<string> vals)
{
if (vals == null || vals.Count == )
{
return;
}
for (int i = ; i < cboxlist.Items.Count; i++)
{
ListItem item = cboxlist.Items[i];
for (int j = ; j < vals.Count; j++)
{
if (item.Value == vals[j])
{
item.Selected = true;
vals.Remove(vals[j]);
break;
}
}
if (vals.Count == )
{
return;
}
}
}
/// <summary>
/// 获取CheckBoxList选中项的值
/// </summary>
public static List<string> GetChecked(CheckBoxList cboxlist)
{
List<string> vals = new List<string>();
foreach (ListItem item in cboxlist.Items)
{
if (item.Selected == true)
{
vals.Add(item.Value);
}
}
return vals;
}
/// <summary>
/// 清空选项
/// </summary>
public static void ClearChecked(CheckBoxList cboxlist)
{
foreach (ListItem item in cboxlist.Items)
{
item.Selected = false;
}
}
/// <summary>
/// 全选
/// </summary>
public static void CheckAll(CheckBoxList cboxlist)
{
foreach (ListItem item in cboxlist.Items)
{
item.Selected = true;
}
}
/// <summary>
/// 反选
/// </summary>
public static void CheckNotChecked(CheckBoxList cboxlist)
{
foreach (ListItem item in cboxlist.Items)
{
item.Selected = !item.Selected;
}
}
/// <summary>
/// 根据数据表绑定CheckBoxList控件
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="TextField">选项名称列编码</param>
/// <param name="ValueField">选项值列编码</param>
public static void BindCheckBoxList(CheckBoxList cboxlist, DataTable dt, string TextField, string ValueField)
{
cboxlist.Items.Clear();
if (dt != null && dt.Rows.Count > )
{
cboxlist.DataSource = dt;
cboxlist.DataTextField = TextField;
cboxlist.DataValueField = ValueField;
cboxlist.DataBind();
}
}
#endregion
#region RadioButtonList
/// <summary>
/// 根据数据表绑定RadioButtonList控件
/// </summary>
/// <param name="dt">数据</param>
/// <param name="TextField">选项名称列编码</param>
/// <param name="ValueField">选项值列编码</param>
public static void BindRadioButtonList(RadioButtonList rdolist, DataTable dt, string TextField, string ValueField)
{
rdolist.Items.Clear();
if (dt != null && dt.Rows.Count > )
{
rdolist.DataSource = dt;
rdolist.DataTextField = TextField;
rdolist.DataValueField = ValueField;
rdolist.DataBind();
}
}
#endregion
#region DropDownList
/// <summary>
/// 根据数据表绑定RadioButtonList控件
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="TextField">选项名称列编码</param>
/// <param name="ValueField">选项值列编码</param>
/// <param name="ListName">空值显示文本,若为空则无空值选项</param>
public static void BindDropDownList(DropDownList dlist, DataTable dt, string TextField, string ValueField, string EmptyValueText)
{
dlist.Items.Clear();
if (dt != null && dt.Rows.Count > )
{
dlist.DataSource = dt;
dlist.DataTextField = TextField;
dlist.DataValueField = ValueField;
dlist.DataBind();
}
if (!String.IsNullOrEmpty(EmptyValueText))
{
dlist.Items.Insert(, new ListItem(EmptyValueText, ""));
}
}
#endregion
#region ListBox
/// <summary>
/// 根据数据表绑定ListBox控件
/// </summary>
/// <param name="dt">数据表</param>
/// <param name="TextField">选项名称列编码</param>
/// <param name="ValueField">选项值列编码</param>
public static void BindListBox(ListBox lbox, DataTable dt, string TextField, string ValueField)
{
lbox.Items.Clear();
if (dt != null && dt.Rows.Count > )
{
lbox.DataSource = dt;
lbox.DataTextField = TextField;
lbox.DataValueField = ValueField;
lbox.DataBind();
}
}
/// <summary>
/// 根据选项文本查找并选中ListBox选项
/// </summary>
/// <param name="lbox">ListBox</param>
/// <param name="strValue">选项显示的文本</param>
public static void FindAndFixItemByText(ListBox lbox, string strValue)
{
int count = lbox.Items.Count;
int index = lbox.SelectedIndex;
if (count > )
{
int i = index + ;
for (; i < count; i++)
{
ListItem li = lbox.Items[i];
if (li.Text.Contains(strValue))
{
lbox.SelectedIndex = i;
break;
}
if (index > && i == count - )
{
count = index;
i = ;
index = ;
}
}
}
}
#endregion
#region TreeView 2013-08-12
/// <summary>
/// 展开指定节点的所有上级节点
/// </summary>
public static void ExpandAllParentNode(TreeNode tn)
{
if (tn.Parent != null)
{
tn.Parent.Expand();
ExpandAllParentNode(tn.Parent);
}
}
/// <summary>
/// 清空TreeView节点选中状态
/// </summary>
public static void ClearTreeNodesChecked(TreeView tview)
{
if (tview.Nodes.Count > )
{
foreach (TreeNode tn in tview.Nodes)
{
ClearTreeNodesChecked(tn);
}
}
}
/// <summary>
/// 清空子节点选中状态
/// </summary>
public static void ClearTreeNodesChecked(TreeNode tn)
{
if (tn != null)
{
tn.Checked = false;
if (tn.ChildNodes.Count > )
{
foreach (TreeNode child in tn.ChildNodes)
{
ClearTreeNodesChecked(child);
}
}
}
}
/// <summary>
/// 根据节点Value值查找节点
/// </summary>
/// <param name="tnParent">根节点</param>
/// <param name="strValue">节点值</param>
public static TreeNode FindNodeByValue(TreeNode tnParent, string strValue)
{
if (tnParent == null)
return null;
if (tnParent.Value == strValue)
return tnParent;
TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.ChildNodes)
{
tnRet = FindNodeByValue(tn, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点Value值查找节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="strValue">节点值</param>
public static TreeNode FindNodeByValue(TreeView tview, string strValue)
{
if (tview.Nodes.Count == )
return null;
TreeNode tnRet = null;
foreach (TreeNode tn in tview.Nodes)
{
tnRet = FindNodeByValue(tn, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点Value值查找指定层级的节点
/// </summary>
/// <param name="tnParent">根节点</param>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点值</param>
public static TreeNode FindNodeByValue(TreeNode tnParent, int depth, string strValue)
{
if (tnParent == null)
return null;
if (tnParent.Value == strValue && tnParent.Depth == depth)
return tnParent;
TreeNode tnRet = null;
if (tnParent.Depth < depth)//不去查找更深层次的节点
{
foreach (TreeNode tn in tnParent.ChildNodes)
{
tnRet = FindNodeByValue(tn, depth, strValue);
if (tnRet != null) break;
}
}
return tnRet;
}
/// <summary>
/// 根据节点Value值查找指定层级的节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点值</param>
public static TreeNode FindNodeByValue(TreeView tview, int depth, string strValue)
{
if (tview.Nodes.Count == )
return null;
TreeNode tnRet = null;
foreach (TreeNode tn in tview.Nodes)
{
tnRet = FindNodeByValue(tn, depth, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点显示名称查找节点
/// </summary>
/// <param name="tnParent">根节点</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode FindNodeByText(TreeNode tnParent, string strValue)
{
if (tnParent == null)
return null;
if (tnParent.Text == strValue)
return tnParent;
TreeNode tnRet = null;
foreach (TreeNode tn in tnParent.ChildNodes)
{
tnRet = FindNodeByText(tn, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点显示名称查找节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode FindNodeByText(TreeView tview, string strValue)
{
if (tview.Nodes.Count == )
return null;
TreeNode tnRet = null;
foreach (TreeNode tn in tview.Nodes)
{
tnRet = FindNodeByText(tn, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点显示名称查找指定层级的节点
/// </summary>
/// <param name="tnParent">根节点</param>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode FindNodeByText(TreeNode tnParent, int depth, string strValue)
{
if (tnParent == null)
return null;
if (tnParent.Text == strValue && tnParent.Depth == depth)
return tnParent;
TreeNode tnRet = null;
if (tnParent.Depth < depth)//不去查找更深层级的节点
{
foreach (TreeNode tn in tnParent.ChildNodes)
{
tnRet = FindNodeByText(tn, depth, strValue);
if (tnRet != null) break;
}
}
return tnRet;
}
/// <summary>
/// 根据节点显示名称查找指定层级的节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode FindNodeByText(TreeView tview, int depth, string strValue)
{
if (tview.Nodes.Count == )
return null;
TreeNode tnRet = null;
foreach (TreeNode tn in tview.Nodes)
{
tnRet = FindNodeByText(tn, depth, strValue);
if (tnRet != null) break;
}
return tnRet;
}
/// <summary>
/// 根据节点Value值选中指定层级的节点
/// </summary>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点值</param>
public static TreeNode CheckNodeByValue(TreeView tview, int depth, string strValue)
{
TreeNode tn = FindNodeByValue(tview, depth, strValue);
if (tn != null)
{
tn.Checked = true;
}
return tn;
}
/// <summary>
/// 根据节点显示名称选中指定层级的节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="depth">节点层级</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode CheckNodeByText(TreeView tview, int depth, string strValue)
{
TreeNode tn = FindNodeByText(tview, depth, strValue);
if (tn != null)
{
tn.Checked = true;
}
return tn;
}
/// <summary>
/// 根据节点Value值查找并选定节点
/// </summary>
/// <param name="strValue">节点值</param>
public static TreeNode FixNodeByValue(TreeView tview, string strValue)
{
TreeNode tn = FindNodeByValue(tview, strValue);
if (tn != null)
{
ExpandAllParentNode(tn);
tn.Select();
}
return tn;
}
/// <summary>
/// 根据节点显示名称查找并选定节点
/// </summary>
/// <param name="tview">TreeView</param>
/// <param name="strValue">节点显示名称</param>
public static TreeNode FixNodeByText(TreeView tview, string strValue)
{
TreeNode tn = FindNodeByText(tview, strValue);
if (tn != null)
{
ExpandAllParentNode(tn);
tn.Select();
}
return tn;
}
/// <summary>
/// 展开第一序列节点并选中最底层节点
/// </summary>
/// <param name="root">根节点</param>
/// <param name="tview">tview</param>
public static void ExpandFirstsNode(TreeNode root, TreeView tview)
{
if (root.ChildNodes.Count > )
{
ExpandFirstsNode(root.ChildNodes[], tview);
}
else
{
root.Select();
}
}
/// <summary>
/// 展开第一序列节点并选中最底层节点
/// </summary>
public static void ExpandFirstsNode(TreeView tview)
{
if (tview.Nodes.Count > )
{
ExpandFirstsNode(tview.Nodes[], tview);
}
}
#endregion #endregion
#region html控件方法 #region select
/// <summary>
/// 获取下拉选项htm
/// </summary>
/// <param name="dt">数据集</param>
/// <param name="valueField">选项值字段</param>
/// <param name="textField">选项文本字段</param>
/// <param name="emptyText">空值文本,若为空则无空值选项</param>
public static string GetSelectOptionHtm(DataTable dt, string valueField, string textField, string emptyText)
{
string htm = String.Empty;
if (!String.IsNullOrEmpty(emptyText))
{
htm += "<option value=\"\">" + emptyText + "</option>\r\n";
}
if (dt != null)
{
for (int i = ; i < dt.Rows.Count; i++)
{
htm += "<option value=\"" + dt.Rows[i][valueField] + "\">" + dt.Rows[i][textField] + "</option>\r\n";
}
}
return htm;
}
/// <summary>
/// 绑定下拉列表(runat='server'的select)
/// </summary>
/// <param name="dt">数据集</param>
/// <param name="valueField">选项值字段</param>
/// <param name="textField">选项文本字段</param>
/// <param name="emptyText">空值文本,若为空则无空值选项</param>
public static void BindSelectList(DataTable dt,HtmlSelect select,string valueField,string textField,string emptyText)
{
select.Items.Clear();
if (dt != null && dt.Rows.Count > )
{
select.DataSource = dt;
select.DataValueField = valueField;
select.DataTextField = textField;
select.DataBind();
}
if (!String.IsNullOrEmpty(emptyText))
{
select.Items.Insert(, new System.Web.UI.WebControls.ListItem(emptyText, ""));
}
}
#endregion #endregion
}
}