![](/img/trans.png)
[英]The GridView ' ' fired event RowUpdating which wasn't handled. C# code behind asp.net
[英]The FormView fired event ModeChanging which wasn't handled.
好的,所以我在努力使用asp:formview。
我已经启动并运行了formview,并添加了“编辑”按钮。
<asp:FormView runat="server" id="fwHotelDetails" DataKeyNames="id" OnDataBound="fwHotelDetails_DataBound" OnModeChanging="fwHotelDetails_ModeChanging" >
<ItemTemplate>
// (..) some code here which outputs some data
<asp:Repeater runat="server" id="repScore">
<ItemTemplate>
<span class="item"> Some output here</span>
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit" />
</ItemTemplate>
</asp:Repeater>
<EditItemTemplate>
Test test, anything??
</EditItemTemplate>
</ItemTemplate>
</asp:FormView>
我已经在后面的代码中尝试了以下解决方案-它们都不起作用:
protected void fwHotelDetails_ItemCommand(object sender, FormViewModeEventArgs e)
{
if (e.CommandName.Equals("Edit"))
{
fwHotelDetails.ChangeMode(e.NewMode);
}
}
和这个:
protected void fwHotelDetails_ModeChanging(object sender, System.Web.UI.WebControls.DetailsViewModeEventArgs e)
{
fwHotelDetails.ChangeMode((FormViewMode)e.NewMode);
}
单击“编辑”按钮只会给我以下错误消息:
FormView'fwHotelDetails'触发了事件ModeChanging,该事件未处理
还需要做些什么?
此页面是FormView控制器的出色参考: http : //authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx
更新:我已更新代码以拒绝Phaedrus的建议。 当前状态是,即使单击“编辑”按钮后,也会加载ItemTemplate中的内容。
您必须指定处理ModeChanging事件的方法。 当FormView控件尝试在编辑,插入和只读模式之间切换时,但是在实际更改模式之前,会引发此事件。
<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" />
方法签名的第二个参数是“ DetailsViewModeEventArgs”,它应该是“ FormViewModeEventArgs”。
void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e)
{
}
只需在formview的Item_Command
编写代码
protected void formview_ItemCommand(object sender, FormViewCommandEventArgs e)
{
if (e.CommandName == "Edit")
{
formview.DefaultMode = FormViewMode.Edit;
formview.DataBind();
}
if (e.CommandName == "Cancel")
{
formview.DefaultMode = FormViewMode.ReadOnly;
formview.DataBind();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.