레이블로 이동합니다. 여기에 몇 가지 질문이 있습니다. 난 그냥 리피터에서 데이터를 얻고 싶지만, 내 코드가 충분하지 않을 것 같아요. 내 중계기의 선택 가치를 얻고 내 레이블로 보내도록 도와 주시겠습니까? 라벨이 외부 범위를 벗어나면하이퍼 링크 A-Z가있는 Asp.net 리피터. 클릭하면 값이
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
최종 클래스
내 클라이언트 측
<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>
선생님 "일부 텍스트"는 말인가요? 그리고 나는 그것을 어디에 둘 것인가? – Janwel
님? :) 나는 단지 당신이'Label1'을 (FindControl보다는) 메소드 내부에서 참조하는 방법을 의미하는 것입니다. 부분적으로는 질문을 잘못 읽었 기 때문입니다. 구현으로 지금 수정했습니다. – TheCodeKing
선생님, 내가 말했듯이 무슨 말을해야만 했는가? 아직도 일하지 않는다. – Janwel