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:
11 // The above copyright notice and this permission notice shall be
12 // included in all copies or substantial portions of the Software.
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.
24 * Namespace : System.Web.UI.MobileControls
25 * Class : ObjectListCommandEventHandler
26 * Author : Gaurav Vaish
28 * Copyright : 2003 with Gaurav Vaish, and with
33 using System
.Web
.Mobile
;
35 namespace System
.Web
.UI
.MobileControls
37 public class ObjectListItem
: MobileListItem
39 private ObjectList owner
;
40 private string[] fields
;
41 private bool dirty
= false;
43 internal ObjectListItem(ObjectList owner
, object dataItem
)
44 : base(dataItem
, null, null)
47 this.fields
= new string[owner
.AllFields
.Count
];
50 internal ObjectListItem(ObjectList owner
)
55 public string this[int key
]
59 if(fields
!= null && fields
.Length
>= key
- 1
60 && fields
[key
] != null)
66 if(fields
!= null && fields
.Length
>= key
- 1)
68 if(IsTrackingViewState
)
85 public string this[string fieldName
]
89 return this[IndexOf(fieldName
)];
93 this[IndexOf(fieldName
)] = value;
97 [MonoTODO("Exception_Details_Not_Exact")]
98 private int IndexOf(string fieldName
)
100 int index
= owner
.AllFields
.IndexOf(fieldName
);
103 throw new ArgumentException("ObjectList_FieldNotFound");
108 public override bool Equals(object obj
)
111 if(obj
is ObjectListItem
)
113 ObjectListItem oli
= (ObjectListItem
) obj
;
114 if(oli
.fields
!= null && this.fields
!= null)
116 if(this.fields
.Length
== oli
.fields
.Length
)
119 for(i
= 0; i
< fields
.Length
; i
++)
121 if(fields
[i
] != oli
.fields
[i
])
124 if(i
== fields
.Length
)
128 retVal
&= (Value
== oli
.Value
);
129 retVal
&= (Text
== oli
.Text
);
134 public override int GetHashCode()
136 return (fields
== null ? Value
.GetHashCode() :
137 fields
[0].GetHashCode());