2013-04-05 75 views
1

我使用的是AJAX TabContainer,並且在綁定到ObjectDataSource的每個選項卡中都有一個asp GridView。 ObjectDataSource基於所選的選項卡返回不同的對象(TabContainer AutoPostBack =「True」)。只有在IsPostBack因爲在第一次加載時TabContainer不可見而在後面的代碼中根據TabContainer Load中選擇的選項卡將ObjectDataSource綁定到GridView。我不綁定任何其他地方的GridView。 GridView中的字段是Eval而不是Bind,因爲這些參數是以二進制方式添加到ObjectDataSource的。.NET GridView更新,e.OldValues爲空

這是批量更新GridView,其中所有字段均可編輯。當我更新GridView時,我無法看到e.OldValues。如果GridView中的字段設置爲綁定,我可以檢索e.NewValues螺母e.OldValues仍然是空的...

有誰知道交易是什麼?

<asp:ObjectDataSource ID="odsEquipment" runat="server" TypeName="EquipmentDB" SelectMethod="GetEquipment" SortParameterName="sortExpression" UpdateMethod="UpdateEquipment"> 
    <SelectParameters> 
     --Params 
    </SelectParameters> 
    <UpdateParameters> 
     --Params 
    </UpdateParameters> 
</asp:ObjectDataSource> 


<asp:TabContainer ID="tcDisciplines" runat="server" CssClass="ajax_tabController" ScrollBars="Horizontal" AutoPostBack="True"> 
--Tabs and GridViews with no properties 

代碼背後:

Protected Sub tcDisciplines_Load(sender As Object, e As EventArgs) Handles tcDisciplines.Load 
    If IsPostBack Then 
     For Each discipline In disciplineList 
      tcDisciplines.Tabs(discipline.ID).HeaderText = discipline.Discipline 
      tcDisciplines.Tabs(discipline.ID).TabIndex = discipline.ID 

      Dim gv As GridView = TryCast(tcDisciplines.Tabs(discipline.ID).Controls(0).FindControl("gv" + discipline.Abbr), GridView) 
      gv.Visible = False 

      If tcDisciplines.ActiveTabIndex = discipline.ID Then 
       gv.Visible = True 

       'Set properties 
      End If 
     Next 
    End If 
End Sub 

回答