webForumDet fria alternativet

Visa olika knappar beroende på värde i databas

.NET

3 svar · 689 visningar · startad av JulleBoy

Medlem sedan jan. 200450 inlägg
Frågan#1

Jag har en funktion för att skifta utseendet på en knapp beroende på ett värde i databasen. Men jag kommer fortfarande inte ifrån att knappen (som är en bild) kör samma funktion.

Vad jag söker är egentligen något som motsvarar det man använde i gamla ASP:

<% If RecSet("blocked") = "ja" then %>
.. HTML.. En knapp
<% Else %>
.. HTML.. En annan knapp
<% End if %>

Finns det något motsvarande i ASP.NET, om jag t.ex. kör en DataGrid?

Idag gör jag följande för att byta knapp/bild:

<asp:LinkButton ID="BlockButton" runat="server" CommandName="Update">
<asp:Image ID="BlockImage" runat="server" AlternateText="User Block" ImageUrl='<%# checkImage(DataBinder.Eval(Container.DataItem,"blocked").ToString()) %>' />
</asp:LinkButton>
public static string checkImage(string strBlocked) {
        
        if (strBlocked == "ja") {
            return "images/block_break.png";
        }
        else {
            return "images/block.png";
        }

}

Så som jag kör nu känns bara så onödigt jobbigt. Men det kanske är det enda sättet?

Medlem sedan jan. 200450 inlägg
#2

<%# (DataBinder.Eval(Container.DataItem,"blocked").ToString() == "ja") ? "En knapp" : "En annan knapp" %>

Medlem sedan juli 20011 084 inlägg
#3

Jag hade tänkte att svara igår men trodde någon med mer kunskap skulle ge ett mer innehållsrikt svar ;)

Ingen av dina lösningar känns särskilt bra. Båda är lite av en fullösning. Det vore istället bättre om du löste det via CodeBehind, om det ligger i en DataGrid kan du ju använda OnItemDataBound för att skapa rätt knapp. Jag kan tyvärr inte ge något konkret exempel. Men om du söker lite på det borde du hitta mer information.

Medlem sedan jan. 200450 inlägg
#4

Nu kör jag enligt följande, vet inte riktigt om detta är fulkodning också.. :r

<asp:LinkButton ID="BlockButton" runat="server" CommandName="Update" ToolTip="Blockera användare" Visible='<%# !Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"blocked")) %>'>
<asp:Image ID="Image1" runat="server" AlternateText="User Block" ImageUrl="images/block.png" />
</asp:LinkButton>
            
<asp:LinkButton ID="BlockBreakButton" runat="server" CommandName="Cancel" ToolTip="Häv blockering" Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"blocked")) %>'>
<asp:Image ID="BlockBreakImage" runat="server" AlternateText="User Block" ImageUrl="images/block_break.png" />
</asp:LinkButton>
332 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
204 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)