我在UpdatePanel中有一个带View和Edit模式的FormView:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:FormView runat="Server" DefaultMode="ReadOnly" DataSourceID="_myDataSource" >
<ItemTemplate>
<!-- View controls omitted -->
<asp:Button runat="server" CommandName="Edit" Text="Edit" />
</ItemTemplate>
<EditItemTemplate>
<!-- Edit controls omitted -->
<asp:Button runat="server" CommandName="Update" Text="Save" />
<asp:Button runat="server" CommandName="Cancel" Text="Cancel" CausesValidation="false" />
</EditItemTemplate>
</asp:FormView>
</ContentTemplate>
</asp:UpdatePanel>
<!-- Data source (may attributes omitted) -->
<asp:ObjectDataSource ID="_myDataSource" runat="server" />
Edit
和Update
按钮/命令工作正常,但Cancel
按钮无效。
有什么想法吗?
答案 0 :(得分:2)
页面似乎没有闪烁,但点击取消按钮2事件由FormView引发并且回发确实发生。您可以参考MSDN。 (备注部分下的表格)
“取消”按钮的作用是:
Cancels an edit or insert operation and returns the FormView control to the mode specified by the DefaultMode property. Raises the ModeChanged and ModeChanging events.
所以你需要处理ModeChanged和ModeChanging的事件,如下所示:
<asp:formview id="EmployeeFormView"
datasourceid="EmployeeSource" allowpaging="true" datakeynames="EmployeeID"
onmodechanged="EmployeeFormView_ModeChanged"
onmodechanging="EmployeeFormView_ModeChanging"
runat="server">
因此,在“取消”按钮单击后要运行的任何代码都应根据要求使用这两个事件。
我把调试器放在Page_Load,modeChanging()&amp; modechanged(),点击“取消”按钮后,所有三个事件都按顺序触发。