我的總體目標是向列表視圖控件(最終HTML表格輸出原因)添加假/未綁定項目。這是解決方案背後的代碼。用戶不會添加項目,因爲它將以嚴格的表格形式輸出。在ASP Net中添加新項目以綁定ListView(無法設置數據鍵/字段名)
我已經看過幾個例子,雖然這很容易下拉它不適合listview。
下面的代碼沒有錯誤,但我的項目沒有在運行時顯示。我認爲這個類沒有正確設置項目的字段名,但是我找不到解決它的正確語法。
ColumnNameAList.DataSource = PeriodDataView
ColumnNameAList.DataBind()
Dim test As New Example1("ColumnNameA")
Dim newItem As New ListViewDataItem(ColumnNameAList.Items.Count, ColumnNameAList.Items.Count)
newItem.DataItem = test
ColumnNameAList.Items.Insert(ColumnNameAList.Items.Count, newItem)
ColumnNameAList.Items.Add(newItem)
這裏是應該設置DataValueField的示例1類:
Public Class Example1
Public Sub New(ColumnNameA__1 As String)
ColumnNameA = ColumnNameA__1
End Sub
Private m_ColumnNameA As String
Public Property ColumnNameA() As String
Get
Return m_ColumnNameA
End Get
Set(value As String)
m_ColumnNameA = value
End Set
End Property
End Class
此輸出我原來的數據源列表中,但不是添加的項目。
<ItemTemplate>
<td>
<%# Eval("ColumnNameA")%>
</td>
</ItemTemplate>
你在什麼時候調用你的插入代碼?它應該作爲['ListView.DataBound'](http://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.basedataboundcontrol.databound.aspx)事件的偵聽器執行,否則數據綁定將清空手動填充的任何元素。 – lsuarez 2011-12-19 20:19:40
我在其他人的代碼中工作,他們有一個自定義子,然後調用「ColumnNameAList.DataBind()」。我將手動插入代碼放在「ColumnNameAList.DataBind()」行之後的同一個子文件中。我認爲,因爲我在數據綁定後修改了列表視圖,這些更改將保留。 – Ariesto 2011-12-19 20:33:15
上面提到的自定義子部分駐留在Page_PreRender區域中。 – Ariesto 2011-12-20 16:25:06