namespace System.Web.UI {
public abstract class DataSourceView
{
- IDataSource dataSourceOwner;
+ //IDataSource dataSourceOwner;
string viewName = String.Empty;
protected DataSourceView (IDataSource owner, string viewName)
if (owner == null)
throw new ArgumentNullException ("owner");
- this.dataSourceOwner = owner;
+ //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,
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;
}
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)
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; } }