Вставьте запись с EmptyDataTemplate в asp: ListView - PullRequest
0 голосов
/ 31 марта 2009

В моем asp: ListView есть EmptyDataTemplate, который я хочу использовать для вставки новой записи.

У меня есть Inserting, работающий в 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

Ответы [ 3 ]

2 голосов
/ 01 февраля 2010

Возможно, вы уже поняли это но если вы установите значение InsertItemPosition, отличное от None, шаблон EmptyData не будет отображаться, т.е. он всегда будет отображать шаблон вставки

вы можете прочитать больше здесь http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.emptydatatemplate.aspx

1 голос
/ 12 октября 2009

Нет, если вы хотите вставить данные в пустой шаблон данных.

0 голосов
/ 29 апреля 2011

Можно сделать вставку из шаблона EmptyDataTemplate, изготовив ее вручную. Я использую просмотр списка для отображения статического числа строк на основе уникального фильтрованного элемента. Я в основном перечисляю все статические атрибуты объекта. В случае, когда фильтруется новый объект, который не имеет никаких связанных с ним атрибутов, я использую шаблон EmptyDataTemplate списка для отображения HTMLTable, содержащего элементы управления asp.net для сбора данных. У меня есть командная кнопка в таблице, которую я оцениваю с помощью ListView_ItemCommand. Если CommandName совпадает с именем кнопки «Вставить» в EmptyDataItem, я использую метод 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 () и обновить свой просмотр списка.

Это лучший способ. Может и нет ... Но это возможно.

~ Ian

...