ページ上のObjectDataSourceにバインドしているデータリピーターがあります。selectは機能していますが、アップデートに問題があります。[保存]ボタンを呼び出すときは、UpdateMethodで指定された関数を呼び出して、リピーターの変更されたオブジェクトのパラメーターに渡します。問題は、オブジェクトをリピーターから戻す方法がわからないことです。個々のフィールドを更新パラメーターとして指定したくないのは、それが本当に扱いにくく、データバインディングの目的を損なうからです。これに関するどんな助けも素晴らしいでしょう。
<%@ Page Language="VB" %>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="ObjectDataSource1" ItemType="CompanyObject">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" CssClass="clsLabel">Company:</asp:Label>
<asp:TextBox ID="txtCompany" runat="server" Text='<%# BindItem.Company%>'></asp:TextBox>
</ItemTemplate>
</asp:Repeater>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetData" TypeName="WebApplication1.CompanyObject"
UpdateMethod="UpdateCompany" DataObjectTypeName="CompanyObject"></asp:ObjectDataSource>
</form>
</body>
</html>
これが私が呼びたい背後にあるコードです:
Public Function UpdateCompany(ByVal company As tblCompany)
'Save the Value here except that company is always null
End Function
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
ObjectDataSource1.Update()
End Sub