got a few question here. i just want to get the data from the repeater but i guess my codes isnt enough. Could you help me get the selected value of my repeater and send it to my label?
Imports System.Data
Imports System.Data.SqlClient
Partial Class About_ReportBug
Inherits System.Web.UI.Page
Protected _letterFilter As String
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
initControls()
End If
End Sub
Private Sub initControls()
letters_Bind()
End Sub
Private Sub letters_Bind()
Dim dt As DataTable
If Session(Me.ToString() & "_LettersData") Is Nothing Then
Dim letters As String() = {"A", "B", "C", "D", "E", "F", _
"G", "H", "I", "J", "K", "L", _
"M", "N", "O", "P", "Q", "R", _
"S", "T", "U", "V", "W", "X", _
"Y", "Z", "All"}
dt = New DataTable()
dt.Columns.Add(New DataColumn("Letter", GetType(String)))
For i As Integer = 0 To letters.Length - 1
Dim dr As DataRow = dt.NewRow()
dr(0) = letters(i)
dt.Rows.Add(dr)
Next
Session(Me.ToString() & "_LettersData") = dt
Else
dt = DirectCast(Session(Me.ToString() & "_LettersData"), DataTable)
End If
rptLetters.DataSource = dt.DefaultView
rptLetters.DataBind()
End Sub
Private Sub letters_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs)
Dim data As DataRowView = DirectCast(e.Item.DataItem, DataRowView)
If DirectCast(data(0), String) = _letterFilter Then
Dim lnkletter As LinkButton = DirectCast(e.Item.FindControl("lnkletter"), LinkButton)
lnkletter.Enabled = False
End If
End Sub
Private Sub letters_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.RepeaterCommandEventArgs)
If e.CommandName = "Filter" Then
Dim repeater As RepeaterItem = Me.rptLetters.Items(e.Item.ItemIndex)
Dim lnkletter As TextBox = repeater.FindControl("_lnkletter")
Label1.Text = lnkletter.Text
End If
End Sub
End Class
my client side
<asp:repeater id="rptLetters" runat="server">
<itemtemplate>
<asp:linkbutton id="lnkLetter" runat="server" commandname="Filter" commandargument='<%# DataBinder.Eval(Container, "DataItem.Letter")%>' forecolor ="#8C4510">
<%# DataBinder.Eval(Container, "DataItem.Letter")%>
</asp:linkbutton>
</itemtemplate>
</asp:repeater>
<br />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
If label is out the outside scope you can just set it from within
ItemDataBoundorItemCommand.e.Item.FindControlwill only find controls within yourItemTemplate.Alternatively you can use
NamingContainerto walk up the tree and reference controls outside of theItemTemplate.To get the selected item from
ItemCommand:You also also missing the
OnItemCommandevent on the repeater.