* PagedDataSource.cs (PrivateICollectionEnumerator.MoveNext):
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / DataListItem.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     DataListItem\r
4  *\r
5  * Authors:  Gaurav Vaish, Gonzalo Paniagua (gonzalo@ximian.com)\r
6  * Maintainer: gvaish@iitk.ac.in\r
7  * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
8  * Implementation: yes\r
9  * Status:  100%\r
10  *\r
11  * (C) Gaurav Vaish (2002)\r
12  * (c) 2002 Ximian, Inc. (http://www.ximian.com)\r
13  */\r
14 \r
15 using System;\r
16 using System.Collections;\r
17 using System.Web;\r
18 using System.Web.UI;\r
19 using System.ComponentModel;\r
20 \r
21 namespace System.Web.UI.WebControls\r
22 {\r
23         [ToolboxItem(false)]\r
24         public class DataListItem : WebControl, INamingContainer\r
25         {\r
26                 int itemIndex;\r
27                 ListItemType itemType;\r
28                 object dataItem;\r
29 \r
30                 public DataListItem(int itemIndex, ListItemType itemType)\r
31                 {\r
32                         this.itemIndex = itemIndex;\r
33                         this.itemType  = itemType;\r
34                 }\r
35 \r
36                 public virtual object DataItem\r
37                 {\r
38                         get\r
39                         {\r
40                                 return dataItem;\r
41                         }\r
42                         set\r
43                         {\r
44                                 dataItem = value;\r
45                         }\r
46                 }\r
47 \r
48                 public virtual int ItemIndex\r
49                 {\r
50                         get\r
51                         {\r
52                                 return itemIndex;\r
53                         }\r
54                 }\r
55 \r
56                 public virtual ListItemType ItemType\r
57                 {\r
58                         get\r
59                         {\r
60                                 return itemType;\r
61                         }\r
62                 }\r
63 \r
64                 public virtual void RenderItem (HtmlTextWriter writer, bool extractRows, bool tableLayout)\r
65                 {\r
66                         if (extractRows){\r
67                                 Table tbl = null;\r
68                                 foreach (Control ctrl in Controls){\r
69                                         if (ctrl is Table){\r
70                                                 tbl = (Table) ctrl;\r
71                                                 break;\r
72                                         }\r
73                                 }\r
74                                 \r
75                                 if (tbl == null)\r
76                                         throw new HttpException ("Template table not found!");\r
77 \r
78                                 foreach (TableRow row in tbl.Rows)\r
79                                         row.RenderControl (writer);\r
80                         } else {\r
81                                 if (tableLayout)\r
82                                         RenderContents (writer);\r
83                                 else\r
84                                         RenderControl (writer);\r
85                         }\r
86 \r
87                 }\r
88 \r
89                 protected override Style CreateControlStyle()\r
90                 {\r
91                         return new TableItemStyle();\r
92                 }\r
93 \r
94                 protected override bool OnBubbleEvent(object source, EventArgs e)\r
95                 {\r
96                         if(e is CommandEventArgs)\r
97                         {\r
98                                 RaiseBubbleEvent(this, new DataListCommandEventArgs(this, source, (CommandEventArgs)e));\r
99                                 return true;\r
100                         }\r
101                         return false;\r
102                 }\r
103 \r
104                 protected internal virtual void SetItemType(ListItemType itemType)\r
105                 {\r
106                         if(Enum.IsDefined(typeof(ListItemType), itemType))\r
107                         {\r
108                                 this.itemType = itemType;\r
109                         }\r
110                 }\r
111         }\r
112 }\r