Jag har två usercontrols i en sida, i den ena har jag en dropdownlist och i den andra en repeater.
Nu skulle jag vilja visa olika data i repeatern på den andra usercontrolen utifrån värdet på den första usercontrolens dropdownlist.
Jag har kommit en bit på vägen och det fungerar hyfsat men värdet från dropdownen släpar och repeatern visar alltid värdet från föregående val i dropdownlisten.
Nån som sitter inne med en bra lösning för att få repeatern att visa rätt data direkt man byter värde på dropdownlisten?
Usercontrol med dropdown:
<%@ Control Language="VB" %>
<script runat="server">
Public ReadOnly Property tabell() As String
Get
Return dropdownlist.SelectedItem.ToString
End Get
End Property
</script>
Usercontrol med repeater:
<%@ Control Language="VB" %>
<script runat="server">
Public WriteOnly Property tabell() As String
Set(ByVal value As String)
rp1.DataSource = objDatabas.visabocht(value)
rp1.DataBind()
End Set
End Property
</script>
aspx-sidan:
<script runat="server">
Sub page_load(ByVal obj As Object, ByVal e As EventArgs)
If sok.tabell <> "" Then
visa.tabell = sok.tabell
End If
End Sub
</script>
Okej, låter ju exakt som vad jag är ute efter. men hur populerar jag en property vid ett event? och vad innebär att prenumerera(antar att det är vad som ska stå) på ett event?
När eventet triggas fårn din ddl-kontroll så lägger du på en ny datakälla och binder om den.
Propertyn DataSource får du således exponera från din repeaterkontroll. Likaså kan du behöva bygga en Bind-metod, som binder din datakälla till repeatern.
Har suttit och kliat mig i huvet ett tag nu.. men det blev lite för svårt när jag ska försöka översätta det där till vb som jag är van vid. Kan du utveckla lite mer?
Nu har jag fått till det med dina bitar i c#, stort tack för dom, fungerar sjukt bra och snabbt.
Men som sagt jag skulle vilja kunna göra samma sak helt i VB, är det möjligt??
<%@ Control Language="VB" %>
<script runat="server">
Dim objDatabas As New GF.databas
Public WriteOnly Property tabell() As String
Set(ByVal value As String)
dg1.DataSource = objDatabas.visabocht(value)
dg1.DataBind()
End Set
End Property
</script>
.
.
.