【发布时间】:2013-03-27 06:48:55
【问题描述】:
我正在使用 AJAX TabContainer,并且每个选项卡中都有一个 asp GridView,它绑定到一个 ObjectDataSource。 ObjectDataSource 根据选择的选项卡返回不同的对象 (TabContainer AutoPostBack="True")。我将 ObjectDataSource 绑定到 GridView 基于 TabContainer 加载期间在代码中选择的选项卡,仅当 IsPostBack 时,因为在第一次加载时 TabContainer 不可见。我没有在其他任何地方绑定 GridView。 GridView 中的字段是 Eval 而不是 Bind,因为参数是动态添加到 ObjectDataSource 中的。
这是一个批量更新 GridView,所有字段均可编辑。当我更新 GridView 时,我看不到 e.OldValues。如果 GridView 中的字段设置为 Bind,我可以检索 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
【问题讨论】:
标签: asp.net vb.net gridview objectdatasource updating