ここには何かが欠けていますが、長い間見つめすぎて見えませんでした。典型的な編集/更新/キャンセル ボタンを備えた単純な ListView を用意しました。行が編集モードになったときに、EditITemTemplate に次のように設定しました。
<EditItemTemplate>
<asp:Label ID="AccountIdLabel" runat="server" Text='<%#Eval("lan_id")%>' />
<asp:TextBox ID="EmployeeIdTextBox" runat="server" Text='<%#Eval("emp_id")%>' Columns="5" />
</EditItemTemplate>
この時点で、ユーザーは EmployeeIdTextBox に値を入力します。彼らが更新を押すと、次のことをしようとしています:
Private Sub ListView_ItemUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewUpdateEventArgs) Handles EmployeeListView.ItemUpdating
Dim accountId = CType(EmployeeListView.EditItem.FindControl("AccountIdLabel"), Label).Text
Dim employeeId = CType(EmployeeListView.EditItem.FindControl("EmployeeIdTextBox"), TextBox).Text
UpdateMap(accountId, employeeId)
EmployeeListView.EditIndex = -1
GetData()
End Sub
問題は、「employeeId」が、ユーザーが入力したものではなく、テキスト ボックスに元の値で返されることです。私は何が欠けていますか?
更新:見つかりました。いつものように、簡単な質問をするためにここに含まれていない他のコードが原因です。:)