Собственно сабж...
| Код | using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; using System.Data.SqlClient; using System.Web.Configuration;
public partial class UserGridDrop : System.Web.UI.UserControl { private string path = @"C:\xmlConfig.xml";//Путь для файла конфигурации по умолчанию XmlDocument doc = new XmlDocument(); SqlCommand cmd = new SqlCommand(); SqlDataAdapter da; DataTable dt; private string s; public string TakeS { get { return s; } set { s = value; } } public string TakePath { get { return path; }
} #region Реализация поиска в xml protected string SearchInXml(string tagname) { XmlNodeList nodelist = doc.GetElementsByTagName(tagname); foreach (XmlNode node in nodelist) { TakeS = node.ChildNodes[0].Value; } return TakeS; } #endregion #region Реализация работы с локальной БД public void WorkWithLocal() {
FillDrop(); FillGrid(); } #endregion #region Реализация работы с БД через Web service public void WorkWithService() { FillGrid(); } #endregion #region Конфигурирование GridView на основе configXml protected void ConfigGrid() { gridEmpSalary.AllowPaging = true;//Разрешаем разбиение на страницы gridEmpSalary.AllowSorting = true;//Разрешаем сортировку #region Считывание и обработка значения Salary_Editable SearchInXml("Salary_Editable"); if (TakeS == "true") {
} else { if (TakeS == "false") {
} else Response.Write("Error in Salary_Column settings!!"); } #endregion
#region Считывание и обработка значения Rows_Per_Page SearchInXml("Rows_Per_Page"); if (Convert.ToInt32(TakeS) <= 0) { Response.Write("Error number of rows per page"); } else {
gridEmpSalary.PageSize = Convert.ToInt32(TakeS);//устанавливаем количество строк на страницу } #endregion } #endregion #region Заполнение DropDown из базы данных protected void FillDrop() { da = new SqlDataAdapter(cmd); DataSet dk = new DataSet(); SqlConnection cn = new SqlConnection(); cn.ConnectionString = "SERVER='ADMIN\\sq';DATABASE='ScanTest';UID='sa';PWD='1'"; cmd.Connection = cn; cmd.CommandText = "SELECT Job_nm FROM Jobs"; try { cn.Open(); da.Fill(dk); cn.Close(); foreach (DataRow r in dk.Tables[0].Rows) { DropJobs.Items.Add(r["Job_nm"].ToString()); } } catch (Exception e) { Response.Write(e.Message); } } #endregion #region Заполнение GridView из базы данных public DataTable FillGrid() { string connectionString = "SERVER='ADMIN\\sq';DATABASE='ScanTest';UID='sa';PWD='1'"; string sql = "SELECT First_name+' '+Last_name As FullName, Salary From Employees"; SqlConnection con = new SqlConnection(connectionString); cmd = new SqlCommand(sql, con); da = new SqlDataAdapter(cmd); dt = new DataTable(); try { con.Open(); da.Fill(dt); gridEmpSalary.DataSource = dt; gridEmpSalary.AllowPaging = true; gridEmpSalary.AllowSorting = true; SearchInXml("Rows_Per_Page"); if (Convert.ToInt32(TakeS) <= 0) { Response.Write("Error! Count of rows per page should be above zero"); } else { gridEmpSalary.PageSize = Convert.ToInt32(TakeS); } gridEmpSalary.DataBind(); } finally { con.Close(); } return dt; } #endregion protected void XmlLoadFile() { /*загружаем созданный\перезаписанный файл с настройками. Считываем значения, конфигурируем user web control в соответствии с ним*/ try { doc.Load(TakePath); } catch(Exception e) { Response.Write(e.Message.ToString()); } #region Считывание и обработка значения DataSource SearchInXml("DataSource"); if (TakeS == "local") { WorkWithLocal(); } else { if (TakeS == "web") { SearchInXml("Web_Service_Url"); //Работа с Web_Service } else Response.Write("Error"); } #endregion
} protected void Page_Load(object sender, EventArgs e) {
XmlLoadFile();
}
#region Событие при смене страниц protected void gridEmpSalary_PageIndexChanging(object sender, GridViewPageEventArgs e) { gridEmpSalary.PageIndex = e.NewPageIndex; gridEmpSalary.DataBind(); } #endregion //Сортировка protected void gridEmpSalary_Sorting(object sender, GridViewSortEventArgs e) { DataView view = dt.DefaultView; view.Sort = e.SortExpression; gridEmpSalary.DataSource = view; gridEmpSalary.DataBind(); } }
|
|