2011-04-20 85 views
8

我有FormView控件:如何在FormView中進入編輯模式?

<asp:FormView ID="fvReport" runat="server" DefaultMode="ReadOnly" AllowPaging="false" OnModeChanging="fvReport_ModeChanging" DataKeyNames="id"> 

protected void fvReport_ModeChanging(Object sender, FormViewModeEventArgs e) 
    { 
     switch (e.NewMode) 
     { 
      case FormViewMode.Edit: 
       fvReport.AllowPaging = false; 
       break; 
     } 
    } 

在ItemTamplate我把LinkBut​​ton的:

<asp:LinkButton ID="lbEdit" runat="server" CausesValidation="true" CommandName="Edit" CommandArgument='<%# Eval("id") %>'>Редактировать</asp:LinkButton> 

當然,FormView控件具有EditItemTemplate模板部分。

當我點擊Button時,FormView被刷新並保持在ReadOnly中。我究竟做錯了什麼?

回答

13

你必須調用FormView控件的ChangeMode方法,並傳遞模式

fvReport.ChangeMode(DetailsViewMode.Edit); 
+1

感謝,在結果我沒有你),但我認爲FormView控件進入編輯模式,如果自動設置的CommandName「編輯」。 [請參閱MSDN](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.formviewmodeeventargs%28v=VS.90%29.aspx) – DmitryB 2011-04-21 05:31:08

0

,我通常使用進入編輯模式,從一個FormView是添加並定義EditItemTemplate中元素的另一種選擇。這使得您的應用程序可編輯變得更容易。

在您的formView中,您可能需要將DefaultMode更改爲編輯。此外,在後面的嘗試代碼:

protected void fvReport_ModeChanging(Object sender, FormViewModeEventArgs e) 
{ 

} 

protected void lbEdit_Click(object sender, EventArgs e) 
{ 
    LinkButton lbEdit = (LinkButton)fvReport.FindControl("lbEdit"); 

    if (sender == lbEdit) 
    { 
     fvReport.DataBind(); 
     fvReport.ChangeMode(FormViewMode.Edit); 
    } 
} 
相關問題