从ListView获取编辑值

时间:2008-11-26 19:13:50

标签: asp.net listview

我在这里遗漏了一些东西,但我已经盯着它看了太长时间。我有一个简单的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”会在文本框中返回原始值,而不是用户输入的内容。我错过了什么?

更新:Found it。像往常一样,由于此处未包含的其他代码导致问一个简单的问题。 :)

2 个答案:

答案 0 :(得分:1)

找到它 - 我在处理其他事件的ItemCommand事件中有代码,但无论命令如何,它都在最后执行GetData(),因此基本上数据在ItemUpdating事件触发之前被刷新。我收紧了ItemCommand,它现在按预期工作了。

答案 1 :(得分:0)

我认为这是因为ItemUpdating事件在ListView更新记录之前触发。您可能希望将此代码放在ItemUpdated事件中。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemupdating.aspx