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
Post a Comment