好的,所以我很苦惱使用asp:formview。FormView觸發了未處理的事件ModeChanging。
我已經將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);
}
點擊編輯按鈕,只給我下面的錯誤消息:
The FormView 'fwHotelDetails' fired event ModeChanging which wasn't handled
還需要做些什麼?
這頁是FormView的控制有很大的參考:http://authors.aspalliance.com/aspxtreme/sys/web/ui/webcontrols/FormViewClass.aspx
更新:我已經更新代碼refelct費德魯斯建議。 當前狀態即使在單擊編輯按鈕後,來自ItemTemplate的內容也會被加載。
你不應該顯式調用fwHotelDetails.ChangeMode((FormViewMode)e.NewMode)。模式會自動更改。嘗試刪除這一行代碼,並讓我知道它是否解決了您的問題。 – Phaedrus 2009-09-18 14:18:18