* roottypes.cs: Rename from tree.cs.
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / RepeaterItem.cs
index 12f11aabaf36ee0ad71a2797a7c3a53c32dacd7d..97d3cc1f536f2dc067a111a7b72788f0628f7d5e 100644 (file)
@@ -1,4 +1,10 @@
-
+//
+// System.Web.UI.WebControls.RepeaterItem
+//
+// Authors:
+//     Ben Maurer (bmaurer@novell.com)
+//
+// (C) 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-/**\r
-* Namespace: System.Web.UI.WebControls\r
-* Class:     RepeaterItem\r
-*\r
-* Author:  Gaurav Vaish\r
-* Maintainer: gvaish@iitk.ac.in\r
-* Implementation: yes\r
-* Status:  100%\r
-*\r
-* (C) Gaurav Vaish (2001)\r
-*/\r
-\r
-using System;\r
-using System.Web;\r
-using System.Web.UI;\r
-using System.ComponentModel;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       [ToolboxItem(false)]\r
-       public class RepeaterItem: Control, INamingContainer\r
-#if NET_2_0\r
-       , IDataItemContainer\r
-#endif\r
-       {\r
-               private int          itemIndex;\r
-               private ListItemType itemType;\r
-               private object       dataItem;\r
-\r
-               public RepeaterItem(int itemIndex, ListItemType itemType)\r
-               {\r
-                       this.itemIndex = itemIndex;\r
-                       this.itemType  = itemType;\r
-               }\r
-\r
-               public virtual object DataItem\r
-               {\r
-                       get\r
-                       {\r
-                               return dataItem;\r
-                       }\r
-                       set\r
-                       {\r
-                               dataItem = value;\r
-                       }\r
-               }\r
-\r
-               public virtual int ItemIndex\r
-               {\r
-                       get\r
-                       {\r
-                               return itemIndex;\r
-                       }\r
-               }\r
-\r
-#if NET_2_0\r
-               int IDataItemContainer.DataItemIndex {
-                       get { return itemIndex; }
+
+using System.ComponentModel;
+
+namespace System.Web.UI.WebControls {
+       [ToolboxItem ("")]
+       public class RepeaterItem : Control, INamingContainer {
+       
+               public RepeaterItem (int itemIndex, ListItemType itemType)
+               {
+                       idx = itemIndex;
+                       type = itemType;
+               }
+
+               // see ... "Building DataBound Templated Custom ASP.NET " on msdn
+               //
+               // This technique is used in the DataGrid, DataList, and Repeater to handle the
+               // Command event of Buttons, LinkButtons, and ImageButtons within the
+               // controls. Since the button's Command event calls RaiseBubbleEvent(), this
+               // percolates the event up to the button's parent.
+               protected override bool OnBubbleEvent (object source, EventArgs e)
+               {
+                       CommandEventArgs ce = e as CommandEventArgs;
+                       if (ce != null) {
+                               base.RaiseBubbleEvent (this, new RepeaterCommandEventArgs (this, source, ce));
+                               return true;
+                       }
+
+                       return false;
+               }
+       
+               public virtual object DataItem {
+                       get {
+                               return data_item;
+                       }
+                       set {
+                               data_item = value;
+                       }
+               }
+       
+               public virtual int ItemIndex {
+                       get {
+                               return idx;
+                       }
                }
-               
-               int IDataItemContainer.DisplayIndex {
-                       get { return itemIndex; }
+       
+               public virtual ListItemType ItemType {
+                       get {
+                               return type;
+                       }
                }
-#endif
 
-               public virtual ListItemType ItemType\r
-               {\r
-                       get\r
-                       {\r
-                               return itemType;\r
-                       }\r
-               }\r
-\r
-               protected override bool OnBubbleEvent(object source, EventArgs e)\r
-               {\r
-                       if(e is CommandEventArgs)\r
-                       {\r
-                               RepeaterCommandEventArgs rcea = new RepeaterCommandEventArgs(this, source, (CommandEventArgs)e);\r
-                               RaiseBubbleEvent(source, rcea);\r
-                               return true;\r
-                       }\r
-                       return false;\r
-               }\r
-       }\r
+               object data_item;
+               int idx;
+               ListItemType type;
+       }
 }