You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
608 lines
20 KiB
608 lines
20 KiB
using System.Text;
|
|
using System.Collections;
|
|
using System.Collections.Specialized;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using System.Collections.Generic;
|
|
|
|
namespace SiteServer.Utils
|
|
{
|
|
/// <summary>
|
|
/// 对控件的帮助类
|
|
/// </summary>
|
|
public class ControlUtils
|
|
{
|
|
private ControlUtils()
|
|
{
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 得到代表控件的HTML代码
|
|
/// </summary>
|
|
/// <param name="control">控件</param>
|
|
/// <returns></returns>
|
|
public static string GetControlRenderHtml(Control control)
|
|
{
|
|
if (control == null) return string.Empty;
|
|
|
|
var builder = new StringBuilder();
|
|
var sw = new System.IO.StringWriter(builder);
|
|
var htw = new HtmlTextWriter(sw);
|
|
control.RenderControl(htw);
|
|
return builder.ToString();
|
|
}
|
|
|
|
public static string GetControlRenderHtml(Control control, Page page)
|
|
{
|
|
if (control == null) return string.Empty;
|
|
|
|
var builder = new StringBuilder();
|
|
control.Page = page;
|
|
control.DataBind();
|
|
var sw = new System.IO.StringWriter(builder);
|
|
var htw = new HtmlTextWriter(sw);
|
|
control.RenderControl(htw);
|
|
return builder.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 如果此控件不存在此属性,将属性添加到控件中
|
|
/// </summary>
|
|
/// <param name="accessor">控件</param>
|
|
/// <param name="attributes">属性集合</param>
|
|
public static void AddAttributesIfNotExists(IAttributeAccessor accessor, NameValueCollection attributes)
|
|
{
|
|
if (accessor == null || attributes == null) return;
|
|
|
|
foreach (var key in attributes.AllKeys)
|
|
{
|
|
if (accessor.GetAttribute(key) == null)
|
|
{
|
|
accessor.SetAttribute(key, attributes[key]);
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 如果此控件不存在此属性,将属性添加到控件中
|
|
/// </summary>
|
|
/// <param name="accessor"></param>
|
|
/// <param name="attributeName"></param>
|
|
/// <param name="attributeValue"></param>
|
|
public static void AddAttributeIfNotExists(IAttributeAccessor accessor, string attributeName, string attributeValue)
|
|
{
|
|
if (accessor == null || attributeName == null) return;
|
|
|
|
if (accessor.GetAttribute(attributeName) == null)
|
|
{
|
|
accessor.SetAttribute(attributeName, attributeValue);
|
|
}
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 将属性添加到控件中
|
|
/// </summary>
|
|
/// <param name="accessor">控件</param>
|
|
/// <param name="attributes">属性集合</param>
|
|
public static void AddAttributes(IAttributeAccessor accessor, StringDictionary attributes)
|
|
{
|
|
if (accessor == null || attributes == null) return;
|
|
|
|
foreach (string key in attributes.Keys)
|
|
{
|
|
accessor.SetAttribute(key, attributes[key]);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 将属性添加到控件中
|
|
/// </summary>
|
|
/// <param name="accessor"></param>
|
|
/// <param name="attributeName"></param>
|
|
/// <param name="attributeValue"></param>
|
|
public static void AddAttribute(IAttributeAccessor accessor, string attributeName, string attributeValue)
|
|
{
|
|
if (accessor != null && attributeName != null)
|
|
{
|
|
accessor.SetAttribute(attributeName, attributeValue);
|
|
}
|
|
}
|
|
|
|
public static void AddListControlItems(ListControl listControl, List<string> list)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
foreach (var value in list)
|
|
{
|
|
var item = new ListItem(value, value);
|
|
listControl.Items.Add(item);
|
|
}
|
|
}
|
|
|
|
|
|
public static string[] GetSelectedListControlValueArray(ListControl listControl)
|
|
{
|
|
var arraylist = new ArrayList();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
arraylist.Add(item.Value);
|
|
}
|
|
}
|
|
}
|
|
var retVal = new string[arraylist.Count];
|
|
arraylist.CopyTo(retVal);
|
|
return retVal;
|
|
}
|
|
|
|
public static string GetSelectedListControlValueCollection(ListControl listControl)
|
|
{
|
|
var list = new List<string>();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
list.Add(item.Value);
|
|
}
|
|
}
|
|
}
|
|
return TranslateUtils.ObjectCollectionToString(list);
|
|
}
|
|
|
|
public static ArrayList GetSelectedListControlValueArrayList(ListControl listControl)
|
|
{
|
|
var arraylist = new ArrayList();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
arraylist.Add(item.Value);
|
|
}
|
|
}
|
|
}
|
|
return arraylist;
|
|
}
|
|
|
|
public static ArrayList GetSelectedListControlValueIntArrayList(ListControl listControl)
|
|
{
|
|
var arraylist = new ArrayList();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
arraylist.Add(TranslateUtils.ToInt(item.Value));
|
|
}
|
|
}
|
|
}
|
|
return arraylist;
|
|
}
|
|
|
|
public static List<string> GetSelectedListControlValueStringList(ListControl listControl)
|
|
{
|
|
var list = new List<string>();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
list.Add(item.Value);
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public static List<int> GetSelectedListControlValueIntList(ListControl listControl)
|
|
{
|
|
var list = new List<int>();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
list.Add(TranslateUtils.ToInt(item.Value));
|
|
}
|
|
}
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public static string[] GetListControlValues(ListControl listControl)
|
|
{
|
|
var arraylist = new ArrayList();
|
|
if (listControl != null)
|
|
{
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
arraylist.Add(item.Value);
|
|
}
|
|
}
|
|
var retVal = new string[arraylist.Count];
|
|
arraylist.CopyTo(retVal);
|
|
return retVal;
|
|
}
|
|
|
|
public static void SelectSingleItem(ListControl listControl, string value)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (string.Equals(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectSingleItemIgnoreCase(ListControl listControl, string value)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
if (StringUtils.EqualsIgnoreCase(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectMultiItems(ListControl listControl, params string[] values)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
foreach (var value in values)
|
|
{
|
|
if (string.Equals(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectMultiItems(ListControl listControl, List<string> values)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
foreach (var value in values)
|
|
{
|
|
if (string.Equals(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectMultiItems(ListControl listControl, List<int> values)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
foreach (var intVal in values)
|
|
{
|
|
if (string.Equals(item.Value, intVal.ToString()))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectMultiItemsIgnoreCase(ListControl listControl, params string[] values)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
foreach (var value in values)
|
|
{
|
|
if (StringUtils.EqualsIgnoreCase(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SelectMultiItemsIgnoreCase(ListControl listControl, List<string> values)
|
|
{
|
|
if (listControl == null) return;
|
|
|
|
listControl.ClearSelection();
|
|
foreach (ListItem item in listControl.Items)
|
|
{
|
|
foreach (var value in values)
|
|
{
|
|
if (StringUtils.EqualsIgnoreCase(item.Value, value))
|
|
{
|
|
item.Selected = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public static string SelectedItemsValueToStringCollection(ListItemCollection items)
|
|
{
|
|
var builder = new StringBuilder();
|
|
if (items!= null)
|
|
{
|
|
foreach (ListItem item in items)
|
|
{
|
|
if (item.Selected)
|
|
{
|
|
builder.Append(item.Value).Append(",");
|
|
}
|
|
}
|
|
if (builder.Length != 0)
|
|
builder.Remove(builder.Length - 1, 1);
|
|
}
|
|
return builder.ToString();
|
|
}
|
|
|
|
public static Control FindControlBySelfAndChildren(string id, Control baseControl)
|
|
{
|
|
Control ctrl = null;
|
|
if (baseControl != null)
|
|
{
|
|
ctrl = baseControl.FindControl(id);
|
|
if (ctrl == baseControl) ctrl = null;//DropDownList中FindControl将返回自身
|
|
if (ctrl == null && baseControl.HasControls())
|
|
{
|
|
ctrl = FindControlByChildren(id, baseControl.Controls);
|
|
}
|
|
}
|
|
return ctrl;
|
|
}
|
|
|
|
public static Control FindControlByChildren(string id, ControlCollection controls)
|
|
{
|
|
foreach (Control control in controls)
|
|
{
|
|
var ctrl = FindControlBySelfAndChildren(id, control);
|
|
if (ctrl != null)
|
|
{
|
|
return ctrl;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
//public static string GetInputValue(Control containerControl, string inputName)
|
|
//{
|
|
// Control control;
|
|
// return GetInputValue(containerControl, inputName, out control);
|
|
//}
|
|
|
|
///// <summary>
|
|
///// 返回null代表未找到控件。
|
|
///// </summary>
|
|
//public static string GetInputValue(Control containerControl, string inputName, out Control control)
|
|
//{
|
|
// string value = null;
|
|
|
|
// control = FindControlBySelfAndChildren(inputName, containerControl);
|
|
// if (control != null)
|
|
// {
|
|
// value = string.Empty;
|
|
// if (control is TextBox)
|
|
// {
|
|
// var input = (TextBox)control;
|
|
// value = input.Text;
|
|
// }
|
|
// else if (control is HtmlInputControl)
|
|
// {
|
|
// var input = (HtmlInputControl)control;
|
|
// value = input.Value;
|
|
// }
|
|
// else if (control is HtmlTextArea)
|
|
// {
|
|
// var input = (HtmlTextArea)control;
|
|
// value = input.Value;
|
|
// }
|
|
// else if (control is TextEditorBase)
|
|
// {
|
|
// var input = (TextEditorBase)control;
|
|
// value = input.Text;
|
|
// }
|
|
// else if (control is ListControl)
|
|
// {
|
|
// var select = (ListControl)control;
|
|
// var arraylist = GetSelectedListControlValueArrayList(select);
|
|
// value = TranslateUtils.ObjectCollectionToString(arraylist);
|
|
// }
|
|
// else if (control is HtmlSelect)
|
|
// {
|
|
// var select = (HtmlSelect)control;
|
|
// var arraylist = new ArrayList();
|
|
// foreach (ListItem item in select.Items)
|
|
// {
|
|
// if (item.Selected)
|
|
// {
|
|
// arraylist.Add(item.Value);
|
|
// }
|
|
// }
|
|
// value = TranslateUtils.ObjectCollectionToString(arraylist);
|
|
// }
|
|
// else if (control is CheckBox)
|
|
// {
|
|
// var checkBox = (CheckBox)control;
|
|
// value = checkBox.Checked.ToString();
|
|
// }
|
|
// }
|
|
// return value;
|
|
//}
|
|
|
|
//public static void SetInputValue(Control containerControl, string inputName, TableStyleInfo styleInfo)
|
|
//{
|
|
// var control = FindControlBySelfAndChildren(inputName, containerControl);
|
|
|
|
// if (control != null)
|
|
// {
|
|
// if (control is TextBox)
|
|
// {
|
|
// var input = (TextBox)control;
|
|
// if (string.IsNullOrEmpty(input.Text) && !string.IsNullOrEmpty(styleInfo.DefaultValue))
|
|
// {
|
|
// input.Text = styleInfo.DefaultValue;
|
|
// }
|
|
// }
|
|
// else if (control is HtmlInputControl)
|
|
// {
|
|
// var input = (HtmlInputControl)control;
|
|
// if (string.IsNullOrEmpty(input.Value) && !string.IsNullOrEmpty(styleInfo.DefaultValue))
|
|
// {
|
|
// input.Value = styleInfo.DefaultValue;
|
|
// }
|
|
// }
|
|
// else if (control is HtmlTextArea)
|
|
// {
|
|
// var input = (HtmlTextArea)control;
|
|
// if (string.IsNullOrEmpty(input.Value) && !string.IsNullOrEmpty(styleInfo.DefaultValue))
|
|
// {
|
|
// input.Value = styleInfo.DefaultValue;
|
|
// }
|
|
// }
|
|
// else if (control is TextEditorBase)
|
|
// {
|
|
// var input = (TextEditorBase)control;
|
|
// if (string.IsNullOrEmpty(input.Text) && !string.IsNullOrEmpty(styleInfo.DefaultValue))
|
|
// {
|
|
// input.Text = styleInfo.DefaultValue;
|
|
// }
|
|
// }
|
|
// else if (control is ListControl)
|
|
// {
|
|
// var select = (ListControl)control;
|
|
// if (select.Items.Count == 0)
|
|
// {
|
|
// var tableStyleItemInfoArrayList = BaiRongDataProvider.TableStyleItemDao.GetStyleItemInfoList(styleInfo.TableStyleId);
|
|
// if (tableStyleItemInfoArrayList != null && tableStyleItemInfoArrayList.Count > 0)
|
|
// {
|
|
// foreach (var styleItemInfo in tableStyleItemInfoArrayList)
|
|
// {
|
|
// var listItem = new ListItem(styleItemInfo.ItemTitle, styleItemInfo.ItemValue);
|
|
// listItem.Selected = styleItemInfo.IsSelected;
|
|
// select.Items.Add(listItem);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// else if (control is HtmlSelect)
|
|
// {
|
|
// var select = (HtmlSelect)control;
|
|
// if (select.Items.Count == 0)
|
|
// {
|
|
// var tableStyleItemInfoArrayList = BaiRongDataProvider.TableStyleItemDao.GetStyleItemInfoList(styleInfo.TableStyleId);
|
|
// if (tableStyleItemInfoArrayList != null && tableStyleItemInfoArrayList.Count > 0)
|
|
// {
|
|
// foreach (var styleItemInfo in tableStyleItemInfoArrayList)
|
|
// {
|
|
// var listItem = new ListItem(styleItemInfo.ItemTitle, styleItemInfo.ItemValue);
|
|
// listItem.Selected = styleItemInfo.IsSelected;
|
|
// select.Items.Add(listItem);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
//public static void SetInputValue(Control containerControl, string inputName, string value, TableStyleInfo styleInfo)
|
|
//{
|
|
// var control = FindControlBySelfAndChildren(inputName, containerControl);
|
|
|
|
// if (control != null)
|
|
// {
|
|
// if (control is TextBox)
|
|
// {
|
|
// var input = (TextBox)control;
|
|
// input.Text = value;
|
|
// }
|
|
// else if (control is HtmlInputControl)
|
|
// {
|
|
// var input = (HtmlInputControl)control;
|
|
// input.Value = value;
|
|
// }
|
|
// else if (control is HtmlTextArea)
|
|
// {
|
|
// var input = (HtmlTextArea)control;
|
|
// input.Value = value;
|
|
// }
|
|
// else if (control is TextEditorBase)
|
|
// {
|
|
// var input = (TextEditorBase)control;
|
|
// input.Text = value;
|
|
// }
|
|
// else if (control is ListControl)
|
|
// {
|
|
// var select = (ListControl)control;
|
|
// if (select.Items.Count == 0)
|
|
// {
|
|
// var tableStyleItemInfoArrayList = BaiRongDataProvider.TableStyleItemDao.GetStyleItemInfoList(styleInfo.TableStyleId);
|
|
// if (tableStyleItemInfoArrayList != null && tableStyleItemInfoArrayList.Count > 0)
|
|
// {
|
|
// foreach (var styleItemInfo in tableStyleItemInfoArrayList)
|
|
// {
|
|
// var listItem = new ListItem(styleItemInfo.ItemTitle, styleItemInfo.ItemValue);
|
|
// listItem.Selected = styleItemInfo.IsSelected;
|
|
// select.Items.Add(listItem);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// else if (control is HtmlSelect)
|
|
// {
|
|
// var select = (HtmlSelect)control;
|
|
// if (select.Items.Count == 0)
|
|
// {
|
|
// var tableStyleItemInfoArrayList = BaiRongDataProvider.TableStyleItemDao.GetStyleItemInfoList(styleInfo.TableStyleId);
|
|
// if (tableStyleItemInfoArrayList != null && tableStyleItemInfoArrayList.Count > 0)
|
|
// {
|
|
// foreach (var styleItemInfo in tableStyleItemInfoArrayList)
|
|
// {
|
|
// var listItem = new ListItem(styleItemInfo.ItemTitle, styleItemInfo.ItemValue);
|
|
// listItem.Selected = styleItemInfo.IsSelected;
|
|
// select.Items.Add(listItem);
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
}
|
|
}
|