2010-04-20 36 views
0

我有一個相當簡單的形式:LoginView FormView控件內沒有數據綁定在回發

<asp:FormView> 
    <EditItemTemplate> 
     <asp:LoginView> 
      <RoleGroups> 
       <asp:RoleGroup roles="Blah"> 
        <ContentTemplate> 
         <!-- Databound Controls using Bind/Eval --> 
        </ContentTemplate> 
       </asp:RoleGroup> 
      </RoleGroups> 
     </asp:LoginView> 

     <!-- Databound Controls --> 
    </EditItemTemplate> 
</asp:FormView> 

<asp:LinqDataSource OnUpdating="MyDataSource_Updating" /> 

我處理我的LinqDataSource OnUpdating事件,並做了一些工作處理某些M:N場。這一切都有效。

但是,一旦更新完成(並且我調用e.Cancel = true),LoginView控件不會禁止它的子對象...因此它們都是空白的。 FormView的viewstate仍然很好,因爲LoginView以外的所有其他控件看起來都很好。我甚至處理了FormView_DataBound事件,並且一個跟蹤顯示FormView在回發時被數據綁定。

爲什麼然後LoginView不保持其ViewState /數據綁定?下面是表示該流的樣本代碼片段:

protected void MyDataSource_Updating(object s, LinqDataSourceUpdateEventArgs e) 
{ 
    try 
    { 
     Controller.DoSomething(newData); 
     // attempts to databind again here fail 
     // frmView.DataBind(); 
     // MyDataSource.DataBind(); 
     // LoginView.DataBind(); 
    } 
    catch { // blah } 
    finally 
    { 
     e.Cancel = true; 
    } 
} 

回答

2

我通過恢復到數據綁定的一切古老的方法,我和砍掉一個LoginView固定這一點。

+0

與LoginView有相同的問題。現在廢棄它並且工作正常。 – 2010-11-30 18:40:34

1

好吧,我不知道,如果你在這個時候需要幫助,但你需要趕上contaiter是德的FormItem,在這種情況下,你不能,我的英語做

<%# DataBinder.Eval(((FormItem)Container.Parent).DataItem,"YOUR FIELD") %> 

對不起。

再見。