次の問題があります。私はSQLテーブルからデータを返すListViewを持っています。その列の1つは「Ambient/Trance/Goa Trance/House」のように見えます。リストビューで動的にボタンを作成する
私がやりたいすべてが「周囲」、「トランス」のボタンのボタンこの列を解析し、各値のためのボタンを作成し、例えばある、など
私は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イベントに対してHandlerを追加しようとしましたが、それも役に立たなかった。
私の問題を解決するのを手伝ってください!
編集:
VinayC私はItemCreatedにItemDataBoundを変更示唆したように。これは役に立ちましたが、私は別の問題に直面しました.e.Item.DataItemまたはe.ItemがPostBacksのNothingになってボタンが機能しないことを理解する限り、
この問題を解決するにはどうすればよいですか?もう一度ありがとう!
感謝を発見しました!それが私を助けました!しかしもう一つ質問があります。私はページ上に複数のListViewを持っており、それらをSQLDataSourcesに動的にバインドします。 ListView.DataSource = Nothing ListView.DataBind()を実行すると、ItemCreatedイベントによってエラーがスローされます。どのように私はそれを避けることができます。ところで、私が動的に生成したボタンを押すと、それらは起動しますが、消えてしまいます。私はそれで何ができますか? –
申し訳ありませんが、私は間違っていました。それは助けになりませんでした。ボタンはCommandNamesとCommandArgumentsを送信しません。 –