Avatar billede brian-johansen Nybegynder
09. juni 2006 - 20:39 Der er 13 kommentarer og
1 løsning

Vælg style udfra querystring

Hej,

Jeg står og skal lave en produktoversigt, men personen jeg laver det  for vil gerne have at tekstens farve ændre sig alt efter hvilken kategori man går ind under. Det skal siges den henter kategories produkter via en querystring, så jeg går udfra at man også kan bruge den til at fortæle hvilken style man vil bruge ?

mvh BRian
Avatar billede thomasabcd Nybegynder
09. juni 2006 - 23:32 #1
kan du ikke tilføje &style til querystringen?

og så:
if(style=="style1")
  .....
else
if(style=="style2")
  ...
etc
Avatar billede brian-johansen Nybegynder
09. juni 2006 - 23:34 #2
jamen hvordan for jeg det ud på HTML siden ? jeg henter det i en datalist ?

mvh Brian
Avatar billede thomasabcd Nybegynder
09. juni 2006 - 23:42 #3
Måske noget a la
if(style=="black")
DataList1.ForeColor = System.Drawing.Color.Black;
if(style=="blue")
DataList1.ForeColor = System.Drawing.Color.Blue;
Avatar billede brian-johansen Nybegynder
09. juni 2006 - 23:59 #4
Humm... jeg kan ikke lige umiddelbart for det til at virke, men jeg tror du er inde på noget af det rigtige, jeg prøver lige at kigge på det i morgen,
Tak for din kommentar :D

mvh Brian
Avatar billede thomasabcd Nybegynder
10. juni 2006 - 00:03 #5
Hvis du markerer din datalist med musen og ser på properties, kan du finde ForeColor og prøve at ændre farven, for at se, om det er det, du vil opnå.
Avatar billede thomasabcd Nybegynder
10. juni 2006 - 00:07 #6
hvis du skriver:
string style =Request.QueryString["style"].toLower();
if(style=="black")
  DataList1.ForeColor = System.Drawing.Color.Black;
if(style=="blue")
  DataList1.ForeColor = System.Drawing.Color.Blue;

burde det virke. Hvis ikke, så skriv lige hvilken fejl du får.
Avatar billede brian-johansen Nybegynder
11. juni 2006 - 10:19 #7
Hej,

Jeg får ingen fejl, men den ændre heller ikke tekstens udseende.

Min datalist ser sådan ud:
  <asp:DataList ID="DataList2" runat="server" DataSourceID="komps" RepeatColumns="3" RepeatDirection="Horizontal" ShowFooter="False" ShowHeader="False">
                            <ItemTemplate>
                            <table>                     
                                   
                            <tr ><td style=" height:200px;" valign=middle>
                                <asp:Image ID="Image1" runat="server" ImageUrl='<%# FormatImgUrl(DataBinder.Eval(Container.DataItem, "billede").ToString()) %>'
                                Width="150" />
                                  </td></tr><br />
                                  <tr><td valign="top">
                                  <a href="komp.aspx?id=<%# Eval("produktId") %>"><%# Eval("produktId") %></a><br />
                                </td></tr><br />
                                </table>
                            </ItemTemplate>
                        </asp:DataList>

og koden bagved ser sådan ud:
if (!IsPostBack)
            {
                if (serie == "DPBITxx")
                {
                    DataList2.ForeColor = System.Drawing.Color.Red;
                }
                if (serie == null)
                {
                    DataList2.ForeColor = System.Drawing.Color.Red;
                }
                if (serie == "21xx")
                {
                    DataList2.ForeColor = System.Drawing.Color.Red;
                }
                if (serie == "20xx")
                {
                    DataList2.ForeColor = System.Drawing.Color.Red;
                }
Avatar billede thomasabcd Nybegynder
11. juni 2006 - 11:25 #8
Prøv at skrive
if (!IsPostBack)
    DataList2.ForeColor=System.Drawing.Color.Red;

for at se, om du kan få den til at skifte farve. Hvis du kan det, fungerer din eksisterende kode ikke, fordi ingen af dine IF-sætninger evalueres til true. Ovenstående virker fint hos mig. Kan du ikke poste et eksempel på den querystring, der skal udløse stil-ændringen ?
Avatar billede brian-johansen Nybegynder
11. juni 2006 - 20:03 #9
det har jeg prøvet, jeg har også prøvet bare skrive at forecolor skal være red (inde i proberties) men det ændre intet.

mvh Brian
Avatar billede thomasabcd Nybegynder
12. juni 2006 - 09:48 #10
Du kan også prøve at binde det til ItemCreated-eventen på din DataList som her:

    protected void DataList2_ItemCreated(object sender, DataListItemEventArgs e)
    {
        e.Item.ForeColor = System.Drawing.Color.Red;
    }
Avatar billede brian-johansen Nybegynder
12. juni 2006 - 11:43 #11
Humm stadigvæk ikke noget resultat, kan det ikke have noget at gøre med at det er links og derved skal det forgå på en anden måde ?

mvh Brian
Avatar billede thomasabcd Nybegynder
12. juni 2006 - 12:03 #12
Jeps, det har det. Så skal du bruge asp's egen hyperlink:
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("produktId", "komp.aspx?id={0}") %>' Text='<%# Eval("produktId") %>'></asp:HyperLink><br />

og :
    protected void DataList2_ItemCreated(object sender, DataListItemEventArgs e)
    {
        HyperLink link = (HyperLink)e.Item.FindControl("HyperLink1");
        link.ForeColor = System.Drawing.Color.Red;
    }
Avatar billede brian-johansen Nybegynder
12. juni 2006 - 12:20 #13
ok - jeg fandt lige en anden løsning i samme øjeblik du skrev:
Den ser sådan her ud:
if (!IsPostBack)
            {
                if (serie == "DPBITxx")
                {
                    DataList2.ItemStyle.CssClass = "DPbit";
                }
                if (serie == null)
                {
                    DataList2.ItemStyle.CssClass = "DPbit";
                }
                if (serie == "21xx")
                {
                    DataList2.ItemStyle.CssClass = "21xx";
                }
                if (serie == "20xx")
                {
                    DataList2.ItemStyle.CssClass = "20xx";
                }

Den vælger en style i min css fil.

Mange tak for hjælpen Ligger du et svar ?

mvh Brian
Avatar billede thomasabcd Nybegynder
12. juni 2006 - 12:21 #14
Værsgo :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester