我有以下問題。我有一個ListView從SQL表中返回數據。其中的一列看起來像「Ambient/Trance/Goa Trance/House」。在ListView中動態創建按鈕
所有我想要做的就是分析此列,併爲每個值創建按鈕,例如一個按鈕,「環境」,爲「恍惚」按鈕等
我試圖創建在ItemDataBound事件按鈕通過以下方式:
Dim ListView_Albums_PlaceHolder_Artists As PlaceHolder = e.Item.FindControl("ListView_Albums_PlaceHolder_Artists")
Dim Artists As String() = e.Item.DataItem("album_artists").ToString.Split("/")
Dim ArtistsN As String() = e.Item.DataItem("album_artists_n").ToString.Split("/")
Dim ListView_Albums_Literal_Artists As New Literal
If Artists.Length = 1 Then
ListView_Albums_Literal_Artists.Text = "Artist: "
Else
ListView_Albums_Literal_Artists.Text = "Artists: "
End If
ListView_Albums_PlaceHolder_Artists.Controls.Add(ListView_Albums_Literal_Artists)
For Integer1 As Integer = 0 To Artists.Length - 1
Dim ListView_Albums_LinkButton_Artist As New LinkButton
ListView_Albums_LinkButton_Artist.Text = ArtistsN(Integer1)
ListView_Albums_LinkButton_Artist.CommandName = "Artist"
ListView_Albums_LinkButton_Artist.CommandArgument = Artists(Integer1)
ListView_Albums_LinkButton_Artist.CssClass = "a-03"
ListView_Albums_PlaceHolder_Artists.Controls.Add(ListView_Albums_LinkButton_Artist)
Dim ListView_Albums_Literal As New Literal
ListView_Albums_Literal.Text = ", "
If Not Integer1 = Artists.Length - 1 Then
ListView_Albums_PlaceHolder_Artists.Controls.Add(ListView_Albums_Literal)
End If
Next
他們創造的很好,但他們根本沒有工作。我嘗試爲Click或Command事件添加處理程序,但它也沒有幫助。
請幫我解決我的問題!
編輯:
由於VinayC建議我改的ItemDataBound到ItemCreated。這有幫助,但我面臨另一個問題:據我瞭解e.Item.DataItem或者,也許,e.Item在PostBacks上成爲Nothing,所以按鈕不起作用。
如何解決這個問題?再次感謝!
謝謝!這幫助了我!但我還有一個問題。我在頁面上有多個ListView,我將它們動態綁定到SQLDataSources。當我做ListView.DataSource = Nothing ListView.DataBind()時,ItemCreated事件會引發錯誤。我怎樣才能避免它。順便說一下,當我按動態生成的按鈕時,它們會觸發但消失。我能用它做什麼? –
對不起,我錯了。它沒有幫助。這些按鈕不會發送CommandName和CommandArguments。 –