using System;
using System.Data;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Collections;namespace pm.Classes
{
/// <summary>
/// clsWebControls 的摘要描述。
/// </summary>
public class clsWebControls
{
public clsWebControls()
{
//
// TODO: 在此加入建構函式的程式碼
//
}
/// <summary>
/// 無查詢結果,返回不含數據的表
/// </summary>
public DataTable dtEmptyForm(string fieldList)
{
DataTable dt = new DataTable();
string[] fieldArray = fieldList.Split(';');
if(fieldArray.Length > 0)
{
foreach(string field in fieldArray)
{
dt.Columns.Add(field.Trim());
}
}
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
return dt;
} /// <summary>
/// 沒有找到數據時DataGrid顯示提示
/// </summary>
public void ShowNoData(DataTable dtEmptyForm,DataGrid dg)
{

dg.DataSource = dtEmptyForm;
dg.DataBind();
DataGridItem dgItem = dg.Items[0];
dgItem.Cells.Clear();
dgItem.Cells.Add(new TableCell());
int CellCount = dg.Columns.Count;
dgItem.Cells[0].Text = "沒有找到相關數據!";
dgItem.Cells[0].ForeColor = Color.Red;
dgItem.Cells[0].ColumnSpan = CellCount;
dg.ItemStyle.HorizontalAlign = System.Web.UI.WebControls.HorizontalAlign.Center;
}
/// <summary>
/// 設定郵件優先級
/// </summary>
/// <param name="ddlName">可選定郵件優先級DorpDownList</param>
public void BindEmailPriority(System.Web .UI .WebControls .DropDownList ddlName)
{
ddlName.Items .Clear ();
ListItem High = new ListItem("高","High");
ListItem Normal = new ListItem("普通","Normal");
ListItem Low = new ListItem("低","Low");
ddlName.Items.Add(High);
ddlName.Items.Add(Normal);
ddlName.Items.Add(Low);
ddlName.SelectedIndex = ddlName.Items.IndexOf(Normal);
} /// <summary>
/// 適用于服務器端Div高度指定
/// </summary>
/// <param name="divInfo">服務器端Div</param>
/// <param name="DivOriginalHeight">Div初始高度</param>
/// <param name="gridItemHeight">Div內DataGrid數據項目高度(普通為25)</param>
/// <param name="gridItemCount">Div內DataGrid數據項目個數</param>
/// <param name="extraHeight">Div內DataGrid表頭表尾等高度(普通為40)</param>
public void DivHeight(System.Web.UI.HtmlControls.HtmlGenericControl divInfo,int divOriginalHeight,int gridItemHeight,int gridItemCount,int extraHeight)
{
int actualHeight = gridItemHeight * gridItemCount + extraHeight;
if(actualHeight <= divOriginalHeight)
{
divInfo.Style.Add("height", actualHeight.ToString() + "px");
}
else
{
divInfo.Style.Add("height",divOriginalHeight.ToString() +"px");
}
}
/// <summary>
/// 控制DataGrid顯示文字
/// </summary>
public void OmitGridInfo(System.Web.UI.WebControls.DataGridItemEventArgs e,int cellIndex)
{
string CellText = e.Item.Cells[cellIndex].Text.Trim();
if(CellText.Length > 10)
{
e.Item.Cells[cellIndex].Text = CellText.Substring(0,9) + "...";
e.Item.Cells[cellIndex].ToolTip = CellText;
}
} /// <summary>
/// 為DataGrid添加鼠標滑過提示色彩
/// </summary>
public void AddTipColor(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemIndex >= 0)
{
e.Item.Attributes["onmouseover"] = "javascript:bgcolor=this.style.backgroundColor;this.style.backgroundColor='"+Classes.clsWebControls.GridTipColor+"';";//faebd7
e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=bgcolor;";
}
} /// <summary>
/// DropDownList綁定數據源
/// </summary>
public void BindControl(System.Web .UI .WebControls .DropDownList ddlName,System.Data.DataTable dtName,string strText,string strValue)
{
ddlName.Items .Clear ();
ddlName.DataSource =dtName;
ddlName.DataTextField =strText;        
ddlName.DataValueField =strValue; 
ddlName.DataBind ();
ddlName.Items .Insert (0,"");
} /// <summary>
/// DropDownList綁定數據源
/// </summary>
public void BindDropDownListControl(System.Web .UI .WebControls .DropDownList ddlName,System.Data.DataTable dtName,string strText,string strValue)
{
ddlName.Items .Clear ();
ddlName.DataSource =dtName;
ddlName.DataTextField =strText;        
ddlName.DataValueField =strValue; 
ddlName.DataBind();
ddlName.Items .Insert (0,"");
}
/// <summary>
/// DataGrid中鼠標滑過的項目背景顏色
/// </summary>
public static string GridTipColor
{
get
{
return "#FFFFD0";
}
} /// <summary>
/// 對DropDownList項目排序
/// </summary>
/// <param name="ddl">指定DropDownList控件</param>
public void dropDownListSort(DropDownList ddl)
{
ListItem   listItem   =   new   ListItem();   
for(int   i=0;i<ddl.Items.Count;i++)   
{   
for(int   j=i+1;j<ddl.Items.Count;j++)   
{   
if(ddl.Items[i].Text.CompareTo(ddl.Items[j].Text)>0)   
{   
listItem   =   ddl.Items[j];   
ddl.Items.Remove(ddl.Items[j]);   
ddl.Items.Insert(i,listItem);   
    
listItem   =   ddl.Items[i+1];   
ddl.Items.Remove(ddl.Items[i+1]);   
ddl.Items.Insert(j,listItem);   
}   
}   
}
ddl.SelectedIndex = -1;
} /// <summary>
/// 設定一組TextBox控件的可用狀態(Enabled)
/// </summary>
/// <param name="ALTextBox">一組保存在ArrayList中的TextBox(ID號)</param>
/// <param name="blEnabled">指定Enabled狀態</param>
public void TextBoxEnabled(ArrayList ALTextBox,bool blEnabled)
{
TextBox[] ArrayTextBox = (TextBox[])ALTextBox.ToArray(typeof(TextBox));
foreach(TextBox tb in ArrayTextBox)
{
tb.Enabled = blEnabled;
}
} /// <summary>
/// 清空一組TextBox控件的值(Text)
/// </summary>
/// <param name="ALTextBox">一組保存在ArrayList中的TextBox(ID號)</param>
public void TextBoxEmpty(ArrayList ALTextBox)
{
TextBox[] ArrayTextBox = (TextBox[])ALTextBox.ToArray(typeof(TextBox));
foreach(TextBox tb in ArrayTextBox)
{
tb.Text = string.Empty;
}

}
/// <summary>
/// 獲取DataGrid的數據源(數據表)
/// </summary>
/// <param name="dg">dataGrid</param>
/// <returns>返回dataTable</returns>
public DataTable DTbyDataGrid(DataGrid dg)
{
try
{
DataTable dt = null;  
       
if(dg.DataSource is DataView)  
{  
dt = (dg.DataSource as DataView).Table;  
}  
else if(dg.DataSource is DataTable)  
{  
dt = dg.DataSource as DataTable;  
}  
else if(dg.DataSource is DataSet)  
{  
dt = (dg.DataSource as DataSet).Tables[0]; 
}
return dt;
}
catch (System.Exception ex)
{
throw ex;
}
}
}
}