erkaMedlem sedan dec. 19996 522 inlägg Hej!
Jag har en User Control som består av fyra hyperlink kontroller med en ImageUrl tagg i varje. Min user control ska importeras på dvs olika sidor och beroende på vilken av dessa sidor är så ska jag skicka in en parameter till den som talar om att en viss bild ska ändras och inte vara den bild som är som default.
Tex
Första hyperlink kontrollen heter HprLnkStart, den har ett default värde för ImageUrl och det är "Mnu_Start_Of.giff", men på Start.aspx vill jag i page load sätta ut kontrollen på sidan samt att HprLnkStart kontrollen ska ha ImageUrl = "Mnu_Start_On.gif"
Jag har kollat på asp.net men blir inte klok på dess toturials. Någon som kan ge en knuff i rätt riktigt, vb.net ;) Antar att jag ska pyssla med propertys
Tacksam
Så här gör jag.
där du inkluderar usercontrolen
<uc:meny runat="server" highlightedpic="start" id="Meny"/>
i usercontrolen
Bilden
<asp:imagebutton borderwidth="0" causesvalidation="False" onclick="start_click" id="Start" runat="server" imageurl="grafik/meny_01.gif" alternatetext="Till startsidan" />
codenehind för usercontrolen
Public Property highlightedpic() As String
Get
_highlightedpic = _highlightedpic
End Get
Set(ByVal Value As String)
_highlightedpic = Value
End Set
End Property
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If _highlightedpic = "start" Then
start.ImageUrl = "grafik/meny1_01.gif"
start.Enabled = False
end if
end sub
och suben för att redirecta från länken
Public Sub start_click(ByVal sender As Object, ByVal e As ImageClickEventArgs)
Response.Redirect("default.aspx")
End Sub
NETworkMedlem sedan juni 20011 732 inlägg I din user control kan du lägga till en (eller flera) accessors. Sedan skickar du in värden från din sida där den är inkluderad som du sedan tar emot och använder i din UC.
//i din uc:
private string navUrl="";
public string NavUrl{
set{
navUrl = value;
}
}
//I koden på sidan:
protected namespace.class myUC;
myUC.NavURL = string;
DinoMedlem sedan sep. 20011 914 inlägg Annan metod:
' I userControl, page_load
If InStr(1, Request.FilePath, "category", CompareMethod.Text) Then
HprLnkStart.ImageUrl = "category_image.gif"
End If
erkaMedlem sedan dec. 19996 522 inlägg Tack,sak rota i det lite mer nu,
Dino vad exakt gör
InStr(1, Request.FilePath, "category", CompareMethod.Text)
Andreas
Public Property highlightedpic() As String
Get
_highlightedpic = _highlightedpic
End Get
Set(ByVal Value As String)
_highlightedpic = Value
End Set
End Property
Jag hajjar inte varför du skriver _highlightedpic ?
DinoMedlem sedan sep. 20011 914 inlägg Den kollar om "category" finns i filnamnet.
NETworkMedlem sedan juni 20011 732 inlägg
erka skrev:
Public Property highlightedpic() As String
Get
_highlightedpic = _highlightedpic
End Get
Set(ByVal Value As String)
_highlightedpic = Value
End Set
End Property
Jag hajjar inte varför du skriver _highlightedpic ?
_highlightedpic är nog en privat variabel som han sätter med den publika variabeln highlightedpic (det är nämligen _aldrig_ bra att använda den publika variabeln direkt)
Däremot finns det nog ett fel i koden ovan (om inte vb är väldigt annorlunda än c#???) och det är att om du ska kunna använda get så måste du ju returnera något där (annars får du ju inte tag på nåt :) ), alltså:
Get
return _highlightedpic
End Get
Jag missade
Private _highlightedpic As String = ""
innan
Public property......
Den koden som jag visade fungerar som den ska
NETworkMedlem sedan juni 20011 732 inlägg :q Nyfiken bara, men man skriver alltså så här i vb?
Get
variabel = variabel
End Get
Känns inte det minsta logiskt, men vb är ju som det är. ;)
Så har dom gjort i boken jag har
erkaMedlem sedan dec. 19996 522 inlägg Jag skrev den så här
Private ActiveHighLightedPic as String
Public Property highlightedpic() as String
Get
Return highlightedpic
End Get
Set(ByVal Value As String)
ActiveHighLightedPic = Value
End Set
End Property
DinoMedlem sedan sep. 20011 914 inlägg Redigering
Private _ActiveHighLightedPic as String
Public Property highlightedpic() as String
Get
Return _ActiveHighLightedPic
End Get
Set(ByVal Value As String)
_ActiveHighLightedPic = Value
End Set
End Property