2009-09-18 96 views
0

好的,所以我很苦惱使用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的內容也會被加載。

+0

你不應該顯式調用fwHotelDetails.ChangeMode((FormViewMode)e.NewMode)。模式會自動更改。嘗試刪除這一行代碼,並讓我知道它是否解決了您的問題。 – Phaedrus 2009-09-18 14:18:18

回答

3

您必須指定哪個方法處理ModeChanging事件。當FormView控件嘗試在編輯,插入和只讀模式之間切換時,但在模式實際更改之前,會引發此事件。

<asp:FormView OnModeChanging="fwHotelDetails_ModeChanging" /> 

你的方法簽名的第二個參數是「DetailsViewModeEventArgs」應該是「FormViewModeEventArgs」。

void fwHotelDetails_ModeChanging(Object sender, FormViewModeEventArgs e) 
{ 
} 
+0

啊....好的,我加了這個。現在我得到以下錯誤:'fwHotelDetails_ModeChanging'沒有重載匹配委託'System.Web.UI.WebControls.FormViewModeEventHandler'。我試過谷歌,看看它是什麼意思......但找不到任何好的答案。 – Steven 2009-09-18 13:24:26

+0

好的,工作。但我無法改變我的想法。因爲當我點擊編輯按鈕時,它仍然嘗試從 Steven 2009-09-18 13:51:12

+0

加載內容我將其標記爲已解決,我將爲模式問題啓動一個新線程。謝謝。 – Steven 2009-09-18 14:08:38

0

只是簡單的在寫代碼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(); 
      } 

     } 
相關問題