[asp.net] use auto-generated backing fields for all properties
[mono.git] / mcs / class / System.Web / System.Web.UI / DataSourceView.cs
index 4f1657cb9c85e102ac3061191a8d0e1dcd90a861..7415b671ec96a16e45f27931d151c0727dd42e29 100644 (file)
@@ -6,7 +6,7 @@
 //     Sanjay Gupta (gsanjay@novell.com)
 //
 // (C) 2003 Ben Maurer
-// (C) 2004 Novell, Inc. (http://www.novell.com)
+// (C) 2004-2010 Novell, Inc. (http://www.novell.com)
 //
 
 //
@@ -30,7 +30,6 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
 using System.Collections;
 using System.Collections.Specialized;
 using System.Text;
@@ -49,6 +48,11 @@ namespace System.Web.UI {
 
                        //this.dataSourceOwner = owner;
                        this.viewName = viewName;
+                       owner.DataSourceChanged += new EventHandler (OnDataSourceChanged);
+               }
+
+               void OnDataSourceChanged (object sender, EventArgs e) {
+                       OnDataSourceViewChanged (EventArgs.Empty);
                }
 
                public virtual void Delete (IDictionary keys, IDictionary values,
@@ -57,12 +61,12 @@ namespace System.Web.UI {
                        if (callBack == null)
                                throw new ArgumentNullException ("callBack");
 
-                       int rowAffected = 0;
+                       int rowAffected;
                        try {
                                rowAffected = ExecuteDelete (keys, values);
                        }
                        catch (Exception e) {
-                               if (!callBack (rowAffected, e))
+                               if (!callBack (0, e))
                                        throw;
                                return;
                        }
@@ -94,16 +98,16 @@ namespace System.Web.UI {
                        if (callBack == null)
                                throw new ArgumentNullException("callBack");
 
-                       int rowAffected = 0;
-                       Exception passOn = null;
+                       int rowAffected;
                        try {
                                rowAffected = ExecuteInsert (values);
                        } catch (Exception e) {
-                               passOn = e;
+                               if (!callBack (0, e))
+                                       throw;
+                               return;
                        }
 
-                       if (!callBack (rowAffected, passOn) && passOn != null)
-                               throw passOn;
+                       callBack (rowAffected, null);
                }
 
                protected virtual void OnDataSourceViewChanged (EventArgs eventArgs)
@@ -151,16 +155,16 @@ namespace System.Web.UI {
                        if (callBack == null)
                                throw new ArgumentNullException ("callBack");
 
-                       int rowAffected = 0;
-                       Exception passOn = null;
+                       int rowAffected;
                        try {
                                rowAffected = ExecuteUpdate (keys, values, oldValues);
                        } catch (Exception e) {
-                               passOn = e;
+                               if (!callBack (0, e))
+                                       throw;
+                               return;
                        }
 
-                       if (!callBack (rowAffected, passOn) && passOn != null)
-                               throw passOn;
+                       callBack (rowAffected, null);
                } 
                
                public virtual bool CanDelete { get { return false; } }
@@ -200,5 +204,4 @@ namespace System.Web.UI {
        }
        
 }
-#endif