public partial class TextBoxSelectDialogDefault : PageBase
{
protected string dataKey = string.Empty;
//protected TextBoxSelectXmlModel xmlModel = null;
#region ViewState Property
protected TextBoxSelectXmlModel xmlModel
{
set
{
ViewState["xmlModel"] = value;
}
get
{
if (ViewState["xmlModel"] == null)
{
return new TextBoxSelectXmlModel();
}
else
{
return (TextBoxSelectXmlModel)ViewState["xmlModel"];
}
}
}
private int StartHiddenIndex
{
set
{
ViewState["StartHiddenIndex"] = value;
}
get
{
if (ViewState["StartHiddenIndex"] == null)
{
return 0;
}
else
{
return (int)ViewState["StartHiddenIndex"];
}
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
{
dataKey = Request.QueryString["key"];
if (!IsPostBack)
{
GetXmlData();
SetSearchForm();
SetGridColumn();
InitList(0);
}
}
#region Get XML Data
private void GetXmlData()
{
if (dataKey != string.Empty)
{
xmlModel = new XmlAnalyze().GetXmlModel(this, dataKey) as TextBoxSelectXmlModel;
if (xmlModel == null)
{
WriteError(string.Format("The xml file is null,or the DataKey '{0}' has not finded!", dataKey));
}
}
}
#endregion
#region Set Grid Column And Appearance
private void SetGridColumn()
{
string[] showFieldArray = xmlModel.ShowFields.Split(',');
string[] showFieldHeaderArray = xmlModel.ShowFieldsHeader.Split(',');
string[] fieldWidthArray = xmlModel.FieldWidth.Split(',');
if (showFieldArray.Length != showFieldHeaderArray.Length || showFieldHeaderArray.Length != fieldWidthArray.Length)
WriteError("FieldWidth,ShowFields or ShowFieldsHeader's Columns are not equal! ");
string[] hiddenFieldArray = xmlModel.HiddenFields.Split(',');
for (int i = 0; i < showFieldArray.Length; i++)
{
BoundField col = new BoundField();
col.HeaderText = showFieldHeaderArray[i];
//col.AccessibleHeaderText = showFieldArray[i];
col.DataField = showFieldArray[i];
col.HeaderStyle.Width = new Unit(fieldWidthArray[i]);
GridView1.Columns.Add(col);
}
StartHiddenIndex = showFieldArray.Length;
foreach (string hf in hiddenFieldArray)
{
BoundField colHidden = new BoundField();
colHidden.DataField = hf;
GridView1.Columns.Add(colHidden);
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if ((e.Row.RowType == DataControlRowType.DataRow) || (e.Row.RowType == DataControlRowType.Header) || (e.Row.RowType == DataControlRowType.Footer))
{
for (int i = StartHiddenIndex; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].Style.Add(HtmlTextWriterStyle.Display, "none");
}
}
if (e.Row.RowType == DataControlRowType.Header)
{
string[] allFields= string.Format("{0},{1}", xmlModel.ShowFields, xmlModel.HiddenFields).Split(',');
for (int i = 0; i < e.Row.Cells.Count; i++)
{
e.Row.Cells[i].ID = allFields[i];
e.Row.Cells[i].CssClass = "TableHeader";
}
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach (TableCell tc in e.Row.Cells)
{
tc.CssClass = "TableItem";
}
}
}
#endregion
#region Set Search Form Appearance
private void SetSearchForm()
{
if (xmlModel.SearchFields == string.Empty)
{
panelSearch.Visible = false;
return;
}
hiddenParams.Value = xmlModel.CallBackParams;
lbDescription.Text = xmlModel.SearchFieldsHeader;
}
#endregion
#region Search Event
protected void btnSearch_Click(object o, EventArgs e)
{
//GetXmlData();
string[] searchFieldsArray = xmlModel.SearchFields.Split(',');
StringBuilder sbWhere = new StringBuilder();
if (txtKeyWord.Text.Trim() != string.Empty)
{
sbWhere.Append(" and ");
foreach (string field in searchFieldsArray)
{
sbWhere.Append(string.Format("{0} like '%{1}%' or ", field, txtKeyWord.Text.Trim()));
}
sbWhere.Remove(sbWhere.Length - 4, 4);
ViewState[WhereStr] = sbWhere.ToString();
}
else
{
ViewState[WhereStr] = null;
}
InitList(1);
}
#endregion
#region Init List
private void InitList(int currentPage)
{
int recordCount = 0;
DataTable dt = new DataTable();
StringBuilder sbWhere = new StringBuilder();
if (ViewState[WhereStr] != null)
{
sbWhere.Append(ViewState[WhereStr].ToString());
}
if (xmlModel.Where != string.Empty)
{
sbWhere.Append(" and ");
sbWhere.Append(xmlModel.Where);
}
Paged.GetPagedData(xmlModel.TableName,
xmlModel.HiddenFields != string.Empty ? string.Format("{0},{1}", xmlModel.ShowFields, xmlModel.HiddenFields) : xmlModel.ShowFields,
PageSize, currentPage,
xmlModel.Order, sbWhere.ToString(), out recordCount, ref dt);
this.GridView1.DataSource = dt.DefaultView;
this.GridView1.DataBind();
AspNetPager1.CurrentPageIndex = currentPage;
AspNetPager1.RecordCount = recordCount;
AspNetPager1.PageSize = PageSize;
}
#endregion
#region Change Page Index
protected void AspNetPager1_PageChanging(object o, Wuqi.Webdiyer.PageChangingEventArgs e)
{
//GetXmlData();
InitList(e.NewPageIndex);
}
#endregion
玩技术,要学会忍受寂寞--