**** Merged from MCS ****
[mono-project.git] / mcs / class / System.Web / System.Web.UI.WebControls / DataListItem.cs
blob00059e0408d47f73aa1cf8b44b5ec2738ca9c141
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining
4 // a copy of this software and associated documentation files (the
5 // "Software"), to deal in the Software without restriction, including
6 // without limitation the rights to use, copy, modify, merge, publish,
7 // distribute, sublicense, and/or sell copies of the Software, and to
8 // permit persons to whom the Software is furnished to do so, subject to
9 // the following conditions:
10 //
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
13 //
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 /**
23 * Namespace: System.Web.UI.WebControls
24 * Class: DataListItem
26 * Authors: Gaurav Vaish, Gonzalo Paniagua (gonzalo@ximian.com)
27 * Maintainer: gvaish@iitk.ac.in
28 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
29 * Implementation: yes
30 * Status: 100%
32 * (C) Gaurav Vaish (2002)
33 * (c) 2002 Ximian, Inc. (http://www.ximian.com)
36 using System;
37 using System.Collections;
38 using System.Web;
39 using System.Web.UI;
40 using System.ComponentModel;
42 namespace System.Web.UI.WebControls
44 [ToolboxItem(false)]
45 public class DataListItem : WebControl, INamingContainer
47 int itemIndex;
48 ListItemType itemType;
49 object dataItem;
51 public DataListItem(int itemIndex, ListItemType itemType)
53 this.itemIndex = itemIndex;
54 this.itemType = itemType;
57 public virtual object DataItem
59 get
61 return dataItem;
63 set
65 dataItem = value;
69 public virtual int ItemIndex
71 get
73 return itemIndex;
77 public virtual ListItemType ItemType
79 get
81 return itemType;
85 public virtual void RenderItem (HtmlTextWriter writer, bool extractRows, bool tableLayout)
87 if (extractRows){
88 Table tbl = null;
89 foreach (Control ctrl in Controls){
90 if (ctrl is Table){
91 tbl = (Table) ctrl;
92 break;
96 if (tbl == null)
97 throw new HttpException ("Template table not found!");
99 foreach (TableRow row in tbl.Rows)
100 row.RenderControl (writer);
101 } else {
102 if (tableLayout)
103 RenderContents (writer);
104 else
105 RenderControl (writer);
110 protected override Style CreateControlStyle()
112 return new TableItemStyle();
115 protected override bool OnBubbleEvent(object source, EventArgs e)
117 if(e is CommandEventArgs)
119 RaiseBubbleEvent(this, new DataListCommandEventArgs(this, source, (CommandEventArgs)e));
120 return true;
122 return false;
125 protected internal virtual void SetItemType(ListItemType itemType)
127 if(Enum.IsDefined(typeof(ListItemType), itemType))
129 this.itemType = itemType;