在 asp:ListView 中使用 EmptyDataTemplate 插入记录

发布于 2024-07-15 11:49:08 字数 451 浏览 11 评论 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.

How can I use the EmptyDataTemplate to Insert a row? 我是否需要使用按钮的 OnClick 来访问 EmptyDataTemplate 中的值并自行执行插入?

我正在使用 LinqDataSource

I have an EmptyDataTemplate in my asp:ListView which I want to use to insert a new record.

I have Inserting working in the InsertItemTemplate... I thought I could copy the InsertItemTemplate into the EmptyDataTemplate, on clicking Insert this gives the error

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

How can I use the EmptyDataTemplate to Insert a row? Do I need to use the OnClick of the button to access the values within the EmptyDataTemplate and do an Insert by myself?

I'm using LinqDataSource

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

流心雨 2024-07-22 11:49:08

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

您可以在此处阅读更多信息
http://msdn.microsoft。 com/en-us/library/system.web.ui.webcontrols.listview.emptydatatemplate.aspx

You might have figured it by now
but if you set the InsertItemPosition to anything other than None the EmptyData Template will not be rendered i.e it will always show the insert template

you can read more here
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.emptydatatemplate.aspx

烂人 2024-07-22 11:49:08

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

No way if want to insert data in empty data template.

听,心雨的声音 2024-07-22 11:49:08

可以通过手工制作插入来从 EmptyDataTemplate 进行插入。 我正在使用列表视图根据唯一的过滤项目显示静态行数。 我基本上列出了对象的所有静态属性。 如果过滤的新对象没有任何与其关联的属性,我使用列表视图的 EmptyDataTemplate 来显示包含 ASP.NET 控件来捕获数据的 HTMLTable。 我在表中有一个命令按钮,我使用 ListView_ItemCommand 对其进行评估。 如果 CommandName 与 EmptyDataItem 中的“插入”按钮的 CommandName 匹配,我将使用 ListView.Controls(0).FindControl 方法来定位我的表。 然后,我循环遍历表并对每行中找到的数据进行插入。 我包括了如何在 htmltable 中查找控件。 在我的代码中,我实际上获取了一堆控件,然后编写 sql 并使用 SQLConnection 来执行插入。

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() 并刷新列表视图。

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

〜伊恩

It is possible to do an insert from the EmptyDataTemplate by handcrafting the insert. I am using a listview to display a static number of rows based on a unique filtered item. I am basically listing all the static attributes of an object. In the case where a new object is filtered on that does not have any attributes associated with it, i use the EmptyDataTemplate of the listview to display a HTMLTable that contains asp.net controls to capture data. I have a command button within the table that i evaluate using the ListView_ItemCommand. If the CommandName matches that of the "Insert" button within the EmptyDataItem, I use the ListView.Controls(0).FindControl method to locate my table. I then loop through my table and do inserts on the data found within each row. I included the how to find a control within the htmltable. In my code I am actually grabbing a bunch of controls then crafting the sql and using a SQLConnection to perform the insert.

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

You will need to still do error checking and databind() and refresh your listview.

Is this the best way. Maybe not... But it is possible.

~Ian

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文