2010-04-20 67 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") %> 

对不起。

再见。