我有一个相当简单的形式: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;
}
}
与LoginView有相同的问题。现在废弃它并且工作正常。 – 2010-11-30 18:40:34