2004-06-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / EditCommandColumn.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     EditCommandColumn\r
4  * \r
5  * Author:  Gaurav Vaish\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  */\r
13 \r
14 using System;\r
15 using System.Web;\r
16 using System.Web.UI;\r
17 \r
18 namespace System.Web.UI.WebControls\r
19 {\r
20         public class EditCommandColumn : DataGridColumn\r
21         {\r
22                 public EditCommandColumn(): base()\r
23                 {\r
24                 }\r
25                 \r
26                 public virtual ButtonColumnType ButtonType\r
27                 {\r
28                         get\r
29                         {\r
30                                 object o = ViewState["ButtonType"];\r
31                                 if(o != null)\r
32                                 {\r
33                                         return (ButtonColumnType)o;\r
34                                 }\r
35                                 return ButtonColumnType.LinkButton;\r
36                         }\r
37                         set\r
38                         {\r
39                                 if(!Enum.IsDefined(typeof(ButtonColumnType), value))\r
40                                 {\r
41                                         throw new ArgumentException();\r
42                                 }\r
43                                 ViewState["ButtonType"] = value;\r
44                                 OnColumnChanged();\r
45                         }\r
46                 }\r
47 \r
48                 public virtual string CancelText\r
49                 {\r
50                         get\r
51                         {\r
52                                 object o = ViewState["CancelText"];\r
53                                 if(o != null)\r
54                                 {\r
55                                         return (string)o;\r
56                                 }\r
57                                 return String.Empty;\r
58                         }\r
59                         set\r
60                         {\r
61                                 ViewState["CancelText"] = value;\r
62                                 OnColumnChanged();\r
63                         }\r
64                 }\r
65 \r
66                 public virtual string EditText\r
67                 {\r
68                         get\r
69                         {\r
70                                 object o = ViewState["EditText"];\r
71                                 if(o != null)\r
72                                 {\r
73                                         return (string)o;\r
74                                 }\r
75                                 return String.Empty;\r
76                         }\r
77                         set\r
78                         {\r
79                                 ViewState["EditText"] = value;\r
80                                 OnColumnChanged();\r
81                         }\r
82                 }\r
83 \r
84                 public virtual string UpdateText\r
85                 {\r
86                         get\r
87                         {\r
88                                 object o = ViewState["UpdateText"];\r
89                                 if(o != null)\r
90                                 {\r
91                                         return (string)o;\r
92                                 }\r
93                                 return String.Empty;\r
94                         }\r
95                         set\r
96                         {\r
97                                 ViewState["UpdateText"] = value;\r
98                                 OnColumnChanged();\r
99                         }\r
100                 }\r
101                 \r
102                 public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType)\r
103                 {\r
104                         base.InitializeCell(cell, columnIndex, itemType);\r
105                         
106                         if (itemType == ListItemType.Header || itemType == ListItemType.Footer)
107                                 return;
108                         
109                         if (itemType == ListItemType.EditItem) {
110                                 cell.Controls.Add (MakeButton ("Update", UpdateText));
111                                 cell.Controls.Add (new LiteralControl ("&nbsp;"));
112                                 cell.Controls.Add (MakeButton ("Cancel", CancelText));
113                         } else {
114                                 cell.Controls.Add (MakeButton ("Edit", EditText));
115                         }\r
116                 }
117                 
118                 Control MakeButton (string commandName, string text)
119                 {
120                         if (ButtonType == ButtonColumnType.LinkButton) {
121                                 DataGridLinkButton ret = new DataGridLinkButton ();
122                                 ret.CommandName = commandName;
123                                 ret.Text = text;
124                                 return ret;
125                         } else {
126                                 Button ret = new Button ();
127                                 ret.CommandName = commandName;
128                                 ret.Text = text;
129                                 return ret;
130                         }
131                 }\r
132         }\r
133 }\r