c# - On ASP.NET formview when are the ModeChanged and ModeChanging events raised? -


this popped up, when trying find why onmodechanging handler wasn't being called when called changemode event of formview.

on formview's changemode method msdn page , stated it:

switches formview control specified data-entry mode

but that:

the modechanged , modechanging events not raised when method called

and in modechanged , modechanging events pages, says occur:

when formview control switches between edit, insert, , read-only mode

after/before mode changes, respectively.

can explain me: when modechanged/ing events raised?

and, there way force these events raised?

i think know why now. i've found answer in other forum, , though didn't find code of formview, i've found detailsview implementation , think in case might similar.

basically i've understood of it, modechanged/ing events raised when command buttons clicked (cancel, edit, insert, new , update), i.e. when 1 doesn't have direct control on these events, , when use changemode method, know mode has changed (or changed) , make no sense of raising event..

detailsview changemode:

public void changemode(detailsviewmode newmode) {     mode = newmode; } 

detailsview command handlers:

private void handlecancel() {     bool isboundtodatasourcecontrol = isboundusingdatasourceid;      detailsviewmodeeventargs e = new detailsviewmodeeventargs(defaultmode, true);     onmodechanging(e);      if (e.cancel) {         return;     }      if (isboundtodatasourcecontrol) {         mode = e.newmode;         onmodechanged(eventargs.empty);     }      requiresdatabinding = true; }    private void handleedit() {     if (pageindex < 0) {         return;     }      detailsviewmodeeventargs e = new detailsviewmodeeventargs(detailsviewmode.edit, false);     onmodechanging(e);      if (e.cancel) {         return;     }      if (isboundusingdatasourceid) {         mode = e.newmode;         onmodechanged(eventargs.empty);     }      requiresdatabinding = true; }  private bool handleinsertcallback(int affectedrows, exception ex) {     detailsviewinsertedeventargs dea = new detailsviewinsertedeventargs(affectedrows, ex);     dea.setvalues(_insertvalues);     oniteminserted(dea);      _insertvalues = null;     if (ex != null && !dea.exceptionhandled) {         if (pageisvalidaftermodelexception()) {             return false;         }         dea.keepininsertmode = true;     }      if (!dea.keepininsertmode) {         detailsviewmodeeventargs emode = new detailsviewmodeeventargs(defaultmode, false);         onmodechanging(emode);         if (!emode.cancel) {             mode = emode.newmode;             onmodechanged(eventargs.empty);             requiresdatabinding = true;         }     }     return true; }  private void handlenew() {     detailsviewmodeeventargs e = new detailsviewmodeeventargs(detailsviewmode.insert, false);     onmodechanging(e);      if (e.cancel) {         return;     }      if (isboundusingdatasourceid) {         mode = e.newmode;         onmodechanged(eventargs.empty);     }      requiresdatabinding = true; }   private bool handleupdatecallback(int affectedrows, exception ex) {     detailsviewupdatedeventargs dea = new detailsviewupdatedeventargs(affectedrows, ex);     dea.setoldvalues(_updateoldvalues);     dea.setnewvalues(_updatenewvalues);     dea.setkeys(_updatekeys);      onitemupdated(dea);      _updatekeys = null;     _updateoldvalues = null;     _updatenewvalues = null;      if (ex != null && !dea.exceptionhandled) {         if (pageisvalidaftermodelexception()) {             return false;         }         dea.keepineditmode = true;     }      if (!dea.keepineditmode) {         detailsviewmodeeventargs emode = new detailsviewmodeeventargs(defaultmode, false);         onmodechanging(emode);         if (!emode.cancel) {             mode = emode.newmode;             onmodechanged(eventargs.empty);             requiresdatabinding = true;         }     }     return true; } 

Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -