📄 datalist.cs
字号:
using System;
using System.Web.UI;
using System.Collections;
namespace System.Web.UI.WebControls
{
/// <summary>
/// Summary description for DataList.
/// </summary>
// .custom instance void [System]System.ComponentModel.EditorAttribute::
public class DataList : BaseDataList,INamingContainer,IRepeatInfoUser
{
public const string SelectCommandName = "Select";
public const string EditCommandName = "Edit";
public const string UpdateCommandName = "Update";
public const string CancelCommandName = "Cancel";
public const string DeleteCommandName = "Delete";
private static object EventItemCreated;
private static object EventItemDataBound;
private static object EventItemCommand;
private static object EventEditCommand;
private static object EventUpdateCommand;
private static object EventCancelCommand;
private static object EventDeleteCommand;
private System.Web.UI.WebControls.TableItemStyle itemStyle;
private System.Web.UI.WebControls.TableItemStyle alternatingItemStyle;
private System.Web.UI.WebControls.TableItemStyle selectedItemStyle;
private System.Web.UI.WebControls.TableItemStyle editItemStyle;
private System.Web.UI.WebControls.TableItemStyle separatorStyle;
private System.Web.UI.WebControls.TableItemStyle headerStyle;
private System.Web.UI.WebControls.TableItemStyle footerStyle;
private System.Web.UI.ITemplate itemTemplate;
private System.Web.UI.ITemplate alternatingItemTemplate;
private System.Web.UI.ITemplate selectedItemTemplate;
private System.Web.UI.ITemplate editItemTemplate;
private System.Web.UI.ITemplate separatorTemplate;
private System.Web.UI.ITemplate headerTemplate;
private System.Web.UI.ITemplate footerTemplate;
private bool extractTemplateRows;
private System.Collections.ArrayList itemsArray;
private System.Web.UI.WebControls.DataListItemCollection itemsCollection;
static DataList()
{
DataList.EventItemCreated = new Object();
DataList.EventItemDataBound = new Object();
DataList.EventItemCommand = new Object();
DataList.EventEditCommand = new Object();
DataList.EventUpdateCommand = new Object();
DataList.EventCancelCommand = new Object();
DataList.EventDeleteCommand = new Object();
}
public DataList() : base()
{
}
protected override void CreateControlHierarchy(bool useDataSource)
{
IEnumerable local0;
int local1;
ArrayList local2;
ICollection local3;
DataListItem local4;
ListItemType local5;
int local6;
bool local7;
int local8;
int local9;
string local10;
bool local11;
object local12;
object local13;
IEnumerator local14;
IDisposable local15;
local0 = null;
local1 = -1;
local2 = this.DataKeysArray;
this.extractTemplateRows = this.ExtractTemplateRows;
if (this.itemsArray != null)
this.itemsArray.Clear();
else
this.itemsArray = new ArrayList();
if (!(useDataSource))
{
local1 = (Int32) this.ViewState["_!ItemCount"];
if (local1 == -1)
goto i0;
local0 = new DummyDataSource(local1);
this.itemsArray.Capacity = local1;
}
else
{
local2.Clear();
local0 = System.Web.UI.DataSourceHelper.GetResolvedDataSource(this.DataSource, this.DataMember);
local3 = local0 as ICollection;
if (local3 != null)
{
local2.Capacity = local3.Count;
this.itemsArray.Capacity = local3.Count;
}
}
i0: if (local0 != null)
{
// this.Controls;
local6 = 0;
local7 = (this.separatorTemplate != null);
local8 = this.EditItemIndex;
local9 = this.SelectedIndex;
local10 = this.DataKeyField;
if (useDataSource)
{
// goto i-1;
}
local11 = false;
local1 = 0;
if (this.headerTemplate != null)
this.CreateItem(-1, 0, useDataSource, null);
local14 = local0.GetEnumerator();
try
{
while (local14.MoveNext())
{
local12 = local14.Current;
if (local11)
{
local13 = System.Web.UI.DataBinder.GetPropertyValue(local12, local10);
local2.Add(local13);
}
local5 = (ListItemType)2;
if (local6 == local8)
local5 = (ListItemType)5;
else
{
if (local6 == local9)
local5 = (ListItemType)4;
else if (local6 % 2 != 0)
local5 = (ListItemType)3;
}
local4 = this.CreateItem(local6, local5, useDataSource, local12);
this.itemsArray.Add(local4);
if (local7)
this.CreateItem(local6, (ListItemType)6, useDataSource, null);
local1++;
local6++;
}
}
finally
{
local15 = local14 as IDisposable;
if (local15 == null)
{
// goto i-1;
}
local15.Dispose();
}
if (this.footerTemplate != null)
this.CreateItem(-1, (ListItemType)1, useDataSource, null);
}
if (useDataSource)
{
if (local0 == null)
{
// goto i-1;
}
// "_!ItemCount"[-1]= local1;
}
}
protected virtual Style CreateControlStyle()
{
TableStyle local0;
local0 = new TableStyle(this.ViewState);
local0.CellSpacing = 0;
return local0;
}
private DataListItem CreateItem(int itemIndex, ListItemType itemType, bool dataBind, object dataItem)
{
throw new Exception("");
// DataListItem local0;
// DataListItemEventArgs local1;
//
// local0 = this.CreateItem(itemIndex, itemType);
// local1 = new DataListItemEventArgs(local0);
// this.InitializeItem(local0);
// if (dataBind)
// local0.DataItem = dataItem;
// this.OnItemCreated(local1);
// this.Controls.Add(local0);
// if (dataBind)
// {
// local0.DataBind();
// this.OnItemDataBound(local1);
// local0.DataItem = null;
// }
// return local0;
}
protected virtual DataListItem CreateItem(int itemIndex, ListItemType itemType)
{
throw new Exception("");
// return new DataListItem(itemIndex, itemType);
}
private DataListItem GetItem(ListItemType itemType, int repeatIndex)
{
DataListItem local0;
int local1;
ListItemType local2;
local0 = null;
local2 = itemType;
switch (local2)
{
case 0:
// local0 = (DataListItem) this.Controls[0];
break;
break;
case (ListItemType)1:
// local0 = (DataListItem) this.Controls[this.Controls.Count - 1];
break;
break;
case (ListItemType)6:
local1 = repeatIndex * 2 + 1;
if (this.headerTemplate != null)
local1++;
// local0 = (DataListItem) this.Controls[local1];
break;
break;
// case 2:
// goto case 5;
// case 3:
// goto case 5;
// case 4:
// goto case 5;
// case 5:
// local0 = (DataListItem) this.itemsArray[repeatIndex];
break;
}
return local0;
}
protected virtual void InitializeItem(DataListItem item)
{
ITemplate local0;
ListItemType local1;
local0 = this.itemTemplate;
// local1 = item.ItemType;
// switch (local1)
// {
// case 0:
// local0 = this.headerTemplate;
// break;
// break;
// case (ListItemType)1:
// local0 = this.footerTemplate;
// break;
// break;
// case (ListItemType)3:
// i1: if (this.alternatingItemTemplate == null)
// break;
// local0 = this.alternatingItemTemplate;
// break;
// break;
// case (ListItemType)4:
// i2: if (this.selectedItemTemplate != null)
// {
// local0 = this.selectedItemTemplate;
// break;
// }
// if (item.ItemIndex % 2 == 0)
// break;
// goto i1;
// break;
// case (ListItemType)5:
// if (this.editItemTemplate != null)
// {
// local0 = this.editItemTemplate;
// break;
// }
// if (item.ItemIndex == this.SelectedIndex)
// goto i2;
// if (item.ItemIndex % 2 == 0)
// break;
// goto i1;
// break;
// case (ListItemType)6:
// local0 = this.separatorTemplate;
// break;
// }
// if (local0 != null)
// local0.InstantiateIn(this);
}
protected virtual void LoadViewState(object savedState)
{
object[] local0;
if (savedState != null)
{
local0 = (object[]) savedState;
// if (local0[0])
// this.LoadViewState(local0[0]);
// if (local0[1])
// this.ItemStyle.LoadViewState(local0[1]);
// if (local0[2])
// this.SelectedItemStyle.LoadViewState(local0[2]);
// if (local0[3])
// this.AlternatingItemStyle.LoadViewState(local0[3]);
// if (local0[4])
// this.EditItemStyle.LoadViewState(local0[4]);
// if (local0[5])
// this.SeparatorStyle.LoadViewState(local0[5]);
// if (local0[6])
// this.HeaderStyle.LoadViewState(local0[6]);
// if (local0[7])
// this.FooterStyle.LoadViewState(local0[7]);
}
}
protected virtual bool OnBubbleEvent(object source, EventArgs e)
{
bool local0;
DataListCommandEventArgs local1;
string local2;
local0 = false;
// if (e as DataListCommandEventArgs != null)
// {
// local1 = (DataListCommandEventArgs) e;
// this.OnItemCommand(local1);
// local0 = true;
// local2 = local1.CommandName;
// if (System.String.Compare(local2, "Select", true) == 0)
// {
// this.SelectedIndex = local1.Item.ItemIndex;
// this.OnSelectedIndexChanged(System.EventArgs.Empty);
// }
// else
// {
// if (System.String.Compare(local2, "Edit", true) == 0)
// this.OnEditCommand(local1);
// else
// {
// if (System.String.Compare(local2, "Delete", true) == 0)
// this.OnDeleteCommand(local1);
// else
// {
// if (System.String.Compare(local2, "Update", true) == 0)
// this.OnUpdateCommand(local1);
// else if (System.String.Compare(local2, "Cancel", true) == 0)
// this.OnCancelCommand(local1);
// }
// }
// }
// }
return local0;
}
protected virtual void OnCancelCommand(DataListCommandEventArgs e)
{
DataListCommandEventHandler local0;
local0 = (DataListCommandEventHandler) this.Events[DataList.EventCancelCommand];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnDeleteCommand(DataListCommandEventArgs e)
{
DataListCommandEventHandler local0;
local0 = (DataListCommandEventHandler) this.Events[DataList.EventDeleteCommand];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnEditCommand(DataListCommandEventArgs e)
{
DataListCommandEventHandler local0;
local0 = (DataListCommandEventHandler) this.Events[DataList.EventEditCommand];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnItemCommand(DataListCommandEventArgs e)
{
DataListCommandEventHandler local0;
local0 = (DataListCommandEventHandler) this.Events[DataList.EventItemCommand];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnItemCreated(DataListItemEventArgs e)
{
DataListItemEventHandler local0;
local0 = (DataListItemEventHandler) this.Events[DataList.EventItemCreated];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnItemDataBound(DataListItemEventArgs e)
{
DataListItemEventHandler local0;
local0 = (DataListItemEventHandler) this.Events[DataList.EventItemDataBound];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected virtual void OnUpdateCommand(DataListCommandEventArgs e)
{
DataListCommandEventHandler local0;
local0 = (DataListCommandEventHandler) this.Events[DataList.EventUpdateCommand];
if (local0 != null)
{
// local0.Invoke(this, e);
}
}
protected override void PrepareControlHierarchy()
{
ControlCollection local0;
int local1;
Style local2;
Style local3;
int local4;
DataListItem local5;
IEnumerator local6;
Control local7;
IEnumerator local8;
ListItemType local9;
local0 = this.Controls;
local1 = local0.Count;
if (local1 == 0)
return;
local2 = null;
if (this.alternatingItemStyle != null)
{
local2 = new TableItemStyle();
local2.CopyFrom(this.itemStyle);
local2.CopyFrom(this.alternatingItemStyle);
}
else
local2 = this.itemStyle;
local4 = 0;
while (local4 < local1)
{
// local5 = (DataListItem) local0[local4];
local3 = null;
// local9 = local5.ItemType;
// switch (local9)
// {
// case 0:
// if (!(this.ShowHeader))
// break;
// local3 = this.headerStyle;
// break;
// break;
// case (ListItemType)1:
// if (!(this.ShowFooter))
// break;
// local3 = this.footerStyle;
// break;
// break;
// case (ListItemType)6:
// local3 = this.separatorStyle;
// break;
// break;
// case (ListItemType)2:
// local3 = this.itemStyle;
// break;
// break;
// case (ListItemType)3:
// local3 = local2;
// break;
// break;
// case (ListItemType)4:
// local3 = new TableItemStyle();
// if (local5.ItemIndex % 2 != 0)
// local3.CopyFrom(local2);
// else
// local3.CopyFrom(this.itemStyle);
// local3.CopyFrom(this.selectedItemStyle);
// break;
// break;
// case (ListItemType)5:
// local3 = new TableItemStyle();
// if (local5.ItemIndex % 2 != 0)
// local3.CopyFrom(local2);
// else
// local3.CopyFrom(this.itemStyle);
// if (local5.ItemIndex == this.SelectedIndex)
// local3.CopyFrom(this.selectedItemStyle);
// local3.CopyFrom(this.editItemStyle);
// break;
// }
if (local3 != null)
{
if (!(this.extractTemplateRows))
{
// local5.MergeStyle(local3);
}
else
{
// local6 = local5.Controls.GetEnumerator();
// while (local6.MoveNext())
// {
// local7 = (Control) local6.Current;
// if (local7 as Table == null)
// continue;
// local8 = (Table) local7.Rows.GetEnumerator();
// while (local8.MoveNext())
// (TableRow) local8.Current.MergeStyle(local3);
// break;
// }
}
}
local4++;
}
}
protected virtual void RenderContents(HtmlTextWriter writer)
{
RepeatInfo local0;
Table local1;
Style local2;
if (this.Controls.Count == 0)
return;
local0 = new RepeatInfo();
local1 = null;
local2 = this.ControlStyle;
if (this.extractTemplateRows)
{
local0.RepeatDirection = System.Web.UI.WebControls.RepeatDirection.Vertical;
local0.RepeatLayout = System.Web.UI.WebControls.RepeatLayout.Flow;
local0.RepeatColumns = 1;
local0.OuterTableImplied = true;
local1 = new Table();
local1.ID = this.ClientID;
local1.CopyBaseAttributes(this);
local1.ApplyStyle(local2);
local1.RenderBeginTag(writer);
}
else
{
local0.RepeatDirection = this.RepeatDirection;
local0.RepeatLayout = this.RepeatLayout;
local0.RepeatColumns = this.RepeatColumns;
}
local0.RenderRepeater(writer, this, local2, this);
if (local1 != null)
local1.RenderEndTag(writer);
}
protected virtual object SaveViewState()
{
object local0;
object local1;
object local2;
object local3;
object local4;
object local5;
object local6;
object local7;
object[] local8;
local0 = this.SaveViewState();
if (this.itemStyle == null)
{
// goto i-1;
}
local1 = this.itemStyle.SaveViewState();
if (this.selectedItemStyle == null)
{
// goto i-1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -