0

我的 asp:ListView 中有一个 EmptyDataTemplate,我想用它来插入新记录。

我在 InsertItemTemplate 中插入工作...我想我可以将 InsertItemTemplate 复制到 EmptyDataTemplate 中,单击插入时会出现错误

Insert can only be called on an insert item. Ensure only the InsertTemplate has a button with CommandName=Insert.

如何使用 EmptyDataTemplate 插入一行?我是否需要使用按钮的 OnClick 来访问 EmptyDataTemplate 中的值并自己进行插入?

我正在使用 LinqDataSource

4

3 回答 3

2

您现在可能已经想通了,但是如果您将 InsertItemPosition 设置为 None 以外的任何值,则 EmptyData 模板将不会被呈现,即它将始终显示插入模板

你可以在这里阅读更多 http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.emptydatatemplate.aspx

于 2010-02-01T10:16:32.693 回答
1

如果想在空数据模板中插入数据,就没有办法。

于 2009-10-12T14:14:16.293 回答
0

可以通过手工插入从 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() 并刷新您的列表视图。

这是最好的方法吗。也许不是……但这是可能的。

~伊恩

于 2011-04-28T21:23:43.590 回答