在B/S项目开发过程中总结的一些常用方法,如:常量、验证方法、服务器控件方法、html控件方法等。
1 ///******************* 说明 ***************************/// 2 /// 作者:清风携夕阳 3 /// 时间:2014-09-29 4 /// 描述:Web服务端控件辅助类,程序开发过程中常用方法 5 ///***************************************************/// 6 using System; 7 using System.Data; 8 using System.Collections.Generic; 9 using System.Web.UI.WebControls; 10 namespace Common 11 { 12 /// <summary> 13 /// Web服务端控件辅助类 14 /// </summary> 15 [Serializable] 16 public static class WebHelper 17 { 18 #region 常量、静态变量 19 /// <summary> 20 /// 8位时间格式yyyymmdd 21 /// </summary> 22 public static string time8 = "yyyymmdd"; 23 /// <summary> 24 /// 10位时间格式yyyy-mm-dd 25 /// </summary> 26 public static string time10 = "yyyy-mm-dd"; 27 /// <summary> 28 /// 通用空值选项文本 29 /// </summary> 30 public static string emptySelect = "--请选择--"; 31 #endregion 32 #region 验证、检测方法 33 /// <summary> 34 /// 验证sql匹配条件是否正确(若以and开头则自动去除) 35 /// </summary> 36 /// <param name="strWhere">sql匹配条件</param> 37 public static string CheckStrWhere(string strWhere) 38 { 39 string str = strWhere.TrimStart();//去除前置空格 40 if (str.ToLower().IndexOf("and ") == 0)//若以and开头则自动去除第一个and 41 { 42 strWhere = str.Substring(4);//若要保留前面一个空格,可以改为3 43 } 44 return strWhere; 45 } 46 #endregion 47 #region 服务端控件方法 48 49 #region CheckBoxList 50 /// <summary> 51 /// 获取CheckBoxList选中项数目 52 /// </summary> 53 public static int CheckedCount(CheckBoxList ckboxlist) 54 { 55 int count = 0; 56 foreach (ListItem item in ckboxlist.Items) 57 { 58 if (item.Selected == true) 59 { 60 count++; 61 } 62 } 63 return count; 64 } 65 /// <summary> 66 /// 根据选项值选中CheckBoxList选项 67 /// </summary> 68 public static void SetChecked(CheckBoxList cboxlist, List<string> vals) 69 { 70 if (vals == null || vals.Count == 0) 71 { 72 return; 73 } 74 for (int i = 0; i < cboxlist.Items.Count; i++) 75 { 76 ListItem item = cboxlist.Items[i]; 77 for (int j = 0; j < vals.Count; j++) 78 { 79 if (item.Value == vals[j]) 80 { 81 item.Selected = true; 82 vals.Remove(vals[j]); 83 break; 84 } 85 } 86 if (vals.Count == 0) 87 { 88 return; 89 } 90 } 91 } 92 /// <summary> 93 /// 获取CheckBoxList选中项的值 94 /// </summary> 95 public static List<string> GetChecked(CheckBoxList cboxlist) 96 { 97 List<string> vals = new List<string>(); 98 foreach (ListItem item in cboxlist.Items) 99 { 100 if (item.Selected == true) 101 { 102 vals.Add(item.Value); 103 } 104 } 105 return vals; 106 } 107 /// <summary> 108 /// 清空选项 109 /// </summary> 110 public static void ClearChecked(CheckBoxList cboxlist) 111 { 112 foreach (ListItem item in cboxlist.Items) 113 { 114 item.Selected = false; 115 } 116 } 117 /// <summary> 118 /// 全选 119 /// </summary> 120 public static void CheckAll(CheckBoxList cboxlist) 121 { 122 foreach (ListItem item in cboxlist.Items) 123 { 124 item.Selected = true; 125 } 126 } 127 /// <summary> 128 /// 反选 129 /// </summary> 130 public static void CheckNotChecked(CheckBoxList cboxlist) 131 { 132 foreach (ListItem item in cboxlist.Items) 133 { 134 item.Selected = !item.Selected; 135 } 136 } 137 /// <summary> 138 /// 根据数据表绑定CheckBoxList控件 139 /// </summary> 140 /// <param name="dt">数据表</param> 141 /// <param name="TextField">选项名称列编码</param> 142 /// <param name="ValueField">选项值列编码</param> 143 public static void BindCheckBoxList(CheckBoxList cboxlist, DataTable dt, string TextField, string ValueField) 144 { 145 cboxlist.Items.Clear(); 146 if (dt != null && dt.Rows.Count > 0) 147 { 148 cboxlist.DataSource = dt; 149 cboxlist.DataTextField = TextField; 150 cboxlist.DataValueField = ValueField; 151 cboxlist.DataBind(); 152 } 153 } 154 #endregion 155 #region RadioButtonList 156 /// <summary> 157 /// 根据数据表绑定RadioButtonList控件 158 /// </summary> 159 /// <param name="dt">数据</param> 160 /// <param name="TextField">选项名称列编码</param> 161 /// <param name="ValueField">选项值列编码</param> 162 public static void BindRadioButtonList(RadioButtonList rdolist, DataTable dt, string TextField, string ValueField) 163 { 164 rdolist.Items.Clear(); 165 if (dt != null && dt.Rows.Count > 0) 166 { 167 rdolist.DataSource = dt; 168 rdolist.DataTextField = TextField; 169 rdolist.DataValueField = ValueField; 170 rdolist.DataBind(); 171 } 172 } 173 #endregion 174 #region DropDownList 175 /// <summary> 176 /// 根据数据表绑定RadioButtonList控件 177 /// </summary> 178 /// <param name="dt">数据表</param> 179 /// <param name="TextField">选项名称列编码</param> 180 /// <param name="ValueField">选项值列编码</param> 181 /// <param name="ListName">空值显示文本,若为空则无空值选项</param> 182 public static void BindDropDownList(DropDownList dlist, DataTable dt, string TextField, string ValueField, string EmptyValueText) 183 { 184 dlist.Items.Clear(); 185 if (dt != null && dt.Rows.Count > 0) 186 { 187 dlist.DataSource = dt; 188 dlist.DataTextField = TextField; 189 dlist.DataValueField = ValueField; 190 dlist.DataBind(); 191 } 192 if (!String.IsNullOrEmpty(EmptyValueText)) 193 { 194 dlist.Items.Insert(0, new ListItem(EmptyValueText, "")); 195 } 196 } 197 #endregion 198 #region ListBox 199 /// <summary> 200 /// 根据数据表绑定ListBox控件 201 /// </summary> 202 /// <param name="dt">数据表</param> 203 /// <param name="TextField">选项名称列编码</param> 204 /// <param name="ValueField">选项值列编码</param> 205 public static void BindListBox(ListBox lbox, DataTable dt, string TextField, string ValueField) 206 { 207 lbox.Items.Clear(); 208 if (dt != null && dt.Rows.Count > 0) 209 { 210 lbox.DataSource = dt; 211 lbox.DataTextField = TextField; 212 lbox.DataValueField = ValueField; 213 lbox.DataBind(); 214 } 215 } 216 /// <summary> 217 /// 根据选项文本查找并选中ListBox选项 218 /// </summary> 219 /// <param name="lbox">ListBox</param> 220 /// <param name="strValue">选项显示的文本</param> 221 public static void FindAndFixItemByText(ListBox lbox, string strValue) 222 { 223 int count = lbox.Items.Count; 224 int index = lbox.SelectedIndex; 225 if (count > 0) 226 { 227 int i = index + 1; 228 for (; i < count; i++) 229 { 230 ListItem li = lbox.Items[i]; 231 if (li.Text.Contains(strValue)) 232 { 233 lbox.SelectedIndex = i; 234 break; 235 } 236 if (index > 0 && i == count - 1) 237 { 238 count = index; 239 i = 0; 240 index = 0; 241 } 242 } 243 } 244 } 245 #endregion 246 #region TreeView 2013-08-12 247 /// <summary> 248 /// 展开指定节点的所有上级节点 249 /// </summary> 250 public static void ExpandAllParentNode(TreeNode tn) 251 { 252 if (tn.Parent != null) 253 { 254 tn.Parent.Expand(); 255 ExpandAllParentNode(tn.Parent); 256 } 257 } 258 /// <summary> 259 /// 清空TreeView节点选中状态 260 /// </summary> 261 public static void ClearTreeNodesChecked(TreeView tview) 262 { 263 if (tview.Nodes.Count > 0) 264 { 265 foreach (TreeNode tn in tview.Nodes) 266 { 267 ClearTreeNodesChecked(tn); 268 } 269 } 270 } 271 /// <summary> 272 /// 清空子节点选中状态 273 /// </summary> 274 public static void ClearTreeNodesChecked(TreeNode tn) 275 { 276 if (tn != null) 277 { 278 tn.Checked = false; 279 if (tn.ChildNodes.Count > 0) 280 { 281 foreach (TreeNode child in tn.ChildNodes) 282 { 283 ClearTreeNodesChecked(child); 284 } 285 } 286 } 287 } 288 /// <summary> 289 /// 根据节点Value值查找节点 290 /// </summary> 291 /// <param name="tnParent">根节点</param> 292 /// <param name="strValue">节点值</param> 293 public static TreeNode FindNodeByValue(TreeNode tnParent, string strValue) 294 { 295 if (tnParent == null) 296 return null; 297 if (tnParent.Value == strValue) 298 return tnParent; 299 TreeNode tnRet = null; 300 foreach (TreeNode tn in tnParent.ChildNodes) 301 { 302 tnRet = FindNodeByValue(tn, strValue); 303 if (tnRet != null) break; 304 } 305 return tnRet; 306 } 307 /// <summary> 308 /// 根据节点Value值查找节点 309 /// </summary> 310 /// <param name="tview">TreeView</param> 311 /// <param name="strValue">节点值</param> 312 public static TreeNode FindNodeByValue(TreeView tview, string strValue) 313 { 314 if (tview.Nodes.Count == 0) 315 return null; 316 TreeNode tnRet = null; 317 foreach (TreeNode tn in tview.Nodes) 318 { 319 tnRet = FindNodeByValue(tn, strValue); 320 if (tnRet != null) break; 321 } 322 return tnRet; 323 } 324 /// <summary> 325 /// 根据节点Value值查找指定层级的节点 326 /// </summary> 327 /// <param name="tnParent">根节点</param> 328 /// <param name="depth">节点层级</param> 329 /// <param name="strValue">节点值</param> 330 public static TreeNode FindNodeByValue(TreeNode tnParent, int depth, string strValue) 331 { 332 if (tnParent == null) 333 return null; 334 if (tnParent.Value == strValue && tnParent.Depth == depth) 335 return tnParent; 336 TreeNode tnRet = null; 337 if (tnParent.Depth < depth)//不去查找更深层次的节点 338 { 339 foreach (TreeNode tn in tnParent.ChildNodes) 340 { 341 tnRet = FindNodeByValue(tn, depth, strValue); 342 if (tnRet != null) break; 343 } 344 } 345 return tnRet; 346 } 347 /// <summary> 348 /// 根据节点Value值查找指定层级的节点 349 /// </summary> 350 /// <param name="tview">TreeView</param> 351 /// <param name="depth">节点层级</param> 352 /// <param name="strValue">节点值</param> 353 public static TreeNode FindNodeByValue(TreeView tview, int depth, string strValue) 354 { 355 if (tview.Nodes.Count == 0) 356 return null; 357 TreeNode tnRet = null; 358 foreach (TreeNode tn in tview.Nodes) 359 { 360 tnRet = FindNodeByValue(tn, depth, strValue); 361 if (tnRet != null) break; 362 } 363 return tnRet; 364 } 365 /// <summary> 366 /// 根据节点显示名称查找节点 367 /// </summary> 368 /// <param name="tnParent">根节点</param> 369 /// <param name="strValue">节点显示名称</param> 370 public static TreeNode FindNodeByText(TreeNode tnParent, string strValue) 371 { 372 if (tnParent == null) 373 return null; 374 if (tnParent.Text == strValue) 375 return tnParent; 376 TreeNode tnRet = null; 377 foreach (TreeNode tn in tnParent.ChildNodes) 378 { 379 tnRet = FindNodeByText(tn, strValue); 380 if (tnRet != null) break; 381 } 382 return tnRet; 383 } 384 /// <summary> 385 /// 根据节点显示名称查找节点 386 /// </summary> 387 /// <param name="tview">TreeView</param> 388 /// <param name="strValue">节点显示名称</param> 389 public static TreeNode FindNodeByText(TreeView tview, string strValue) 390 { 391 if (tview.Nodes.Count == 0) 392 return null; 393 TreeNode tnRet = null; 394 foreach (TreeNode tn in tview.Nodes) 395 { 396 tnRet = FindNodeByText(tn, strValue); 397 if (tnRet != null) break; 398 } 399 return tnRet; 400 } 401 /// <summary> 402 /// 根据节点显示名称查找指定层级的节点 403 /// </summary> 404 /// <param name="tnParent">根节点</param> 405 /// <param name="depth">节点层级</param> 406 /// <param name="strValue">节点显示名称</param> 407 public static TreeNode FindNodeByText(TreeNode tnParent, int depth, string strValue) 408 { 409 if (tnParent == null) 410 return null; 411 if (tnParent.Text == strValue && tnParent.Depth == depth) 412 return tnParent; 413 TreeNode tnRet = null; 414 if (tnParent.Depth < depth)//不去查找更深层级的节点 415 { 416 foreach (TreeNode tn in tnParent.ChildNodes) 417 { 418 tnRet = FindNodeByText(tn, depth, strValue); 419 if (tnRet != null) break; 420 } 421 } 422 return tnRet; 423 } 424 /// <summary> 425 /// 根据节点显示名称查找指定层级的节点 426 /// </summary> 427 /// <param name="tview">TreeView</param> 428 /// <param name="depth">节点层级</param> 429 /// <param name="strValue">节点显示名称</param> 430 public static TreeNode FindNodeByText(TreeView tview, int depth, string strValue) 431 { 432 if (tview.Nodes.Count == 0) 433 return null; 434 TreeNode tnRet = null; 435 foreach (TreeNode tn in tview.Nodes) 436 { 437 tnRet = FindNodeByText(tn, depth, strValue); 438 if (tnRet != null) break; 439 } 440 return tnRet; 441 } 442 /// <summary> 443 /// 根据节点Value值选中指定层级的节点 444 /// </summary> 445 /// <param name="depth">节点层级</param> 446 /// <param name="strValue">节点值</param> 447 public static TreeNode CheckNodeByValue(TreeView tview, int depth, string strValue) 448 { 449 TreeNode tn = FindNodeByValue(tview, depth, strValue); 450 if (tn != null) 451 { 452 tn.Checked = true; 453 } 454 return tn; 455 } 456 /// <summary> 457 /// 根据节点显示名称选中指定层级的节点 458 /// </summary> 459 /// <param name="tview">TreeView</param> 460 /// <param name="depth">节点层级</param> 461 /// <param name="strValue">节点显示名称</param> 462 public static TreeNode CheckNodeByText(TreeView tview, int depth, string strValue) 463 { 464 TreeNode tn = FindNodeByText(tview, depth, strValue); 465 if (tn != null) 466 { 467 tn.Checked = true; 468 } 469 return tn; 470 } 471 /// <summary> 472 /// 根据节点Value值查找并选定节点 473 /// </summary> 474 /// <param name="strValue">节点值</param> 475 public static TreeNode FixNodeByValue(TreeView tview, string strValue) 476 { 477 TreeNode tn = FindNodeByValue(tview, strValue); 478 if (tn != null) 479 { 480 ExpandAllParentNode(tn); 481 tn.Select(); 482 } 483 return tn; 484 } 485 /// <summary> 486 /// 根据节点显示名称查找并选定节点 487 /// </summary> 488 /// <param name="tview">TreeView</param> 489 /// <param name="strValue">节点显示名称</param> 490 public static TreeNode FixNodeByText(TreeView tview, string strValue) 491 { 492 TreeNode tn = FindNodeByText(tview, strValue); 493 if (tn != null) 494 { 495 ExpandAllParentNode(tn); 496 tn.Select(); 497 } 498 return tn; 499 } 500 /// <summary> 501 /// 展开第一序列节点并选中最底层节点 502 /// </summary> 503 /// <param name="root">根节点</param> 504 /// <param name="tview">tview</param> 505 public static void ExpandFirstsNode(TreeNode root, TreeView tview) 506 { 507 if (root.ChildNodes.Count > 0) 508 { 509 ExpandFirstsNode(root.ChildNodes[0], tview); 510 } 511 else 512 { 513 root.Select(); 514 } 515 } 516 /// <summary> 517 /// 展开第一序列节点并选中最底层节点 518 /// </summary> 519 public static void ExpandFirstsNode(TreeView tview) 520 { 521 if (tview.Nodes.Count > 0) 522 { 523 ExpandFirstsNode(tview.Nodes[0], tview); 524 } 525 } 526 #endregion 527 528 #endregion 529 #region html控件方法 530 531 #region select 532 /// <summary> 533 /// 获取下拉选项htm 534 /// </summary> 535 /// <param name="dt">数据集</param> 536 /// <param name="valueField">选项值字段</param> 537 /// <param name="textField">选项文本字段</param> 538 /// <param name="emptyText">空值文本,若为空则无空值选项</param> 539 public static string GetSelectOptionHtm(DataTable dt, string valueField, string textField, string emptyText) 540 { 541 string htm = String.Empty; 542 if (!String.IsNullOrEmpty(emptyText)) 543 { 544 htm += "<option value=\"\">" + emptyText + "</option>\r\n"; 545 } 546 if (dt != null) 547 { 548 for (int i = 0; i < dt.Rows.Count; i++) 549 { 550 htm += "<option value=\"" + dt.Rows[i][valueField] + "\">" + dt.Rows[i][textField] + "</option>\r\n"; 551 } 552 } 553 return htm; 554 } 555 /// <summary> 556 /// 绑定下拉列表(runat=‘server‘的select) 557 /// </summary> 558 /// <param name="dt">数据集</param> 559 /// <param name="valueField">选项值字段</param> 560 /// <param name="textField">选项文本字段</param> 561 /// <param name="emptyText">空值文本,若为空则无空值选项</param> 562 public static void BindSelectList(DataTable dt,HtmlSelect select,string valueField,string textField,string emptyText) 563 { 564 select.Items.Clear(); 565 if (dt != null && dt.Rows.Count > 0) 566 { 567 select.DataSource = dt; 568 select.DataValueField = valueField; 569 select.DataTextField = textField; 570 select.DataBind(); 571 } 572 if (!String.IsNullOrEmpty(emptyText)) 573 { 574 select.Items.Insert(0, new System.Web.UI.WebControls.ListItem(emptyText, "")); 575 } 576 } 577 #endregion 578 579 #endregion 580 } 581 }
时间: 2024-10-30 04:37:38