DataListItem.cs 2.2 KB

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