可以通过手工插入从 EmptyDataTemplate 进行插入。我正在使用列表视图来显示基于唯一过滤项的静态行数。我基本上列出了一个对象的所有静态属性。在过滤一个没有任何关联属性的新对象的情况下,我使用列表视图的 EmptyDataTemplate 来显示一个 HTMLTable,其中包含用于捕获数据的 asp.net 控件。我在使用 ListView_ItemCommand 评估的表中有一个命令按钮。如果 CommandName 与 EmptyDataItem 中的“Insert”按钮匹配,我使用 ListView.Controls(0).FindControl 方法来定位我的表。然后我遍历我的表并插入每行中找到的数据。我包括了如何在 htmltable 中找到控件。
Protected Sub ListView_ItemCommand(sender As Object, e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles ListView.ItemCommand
Select Case e.CommandName
Case "Submit"
Dim edt As HtmlTable = ListView.Controls(0).FindControl("myhtmltable")
Dim ddl As DropDownList = CType(edt.FindControl("mydropdownlist"), DropDownList)
'Perform Insert
Case "Some other commandname"
End Select
End Sub
您仍然需要进行错误检查和 databind() 并刷新您的列表视图。
这是最好的方法吗。也许不是……但这是可能的。
~伊恩