Diskuze: Stylování Labelu Asp.NET

C# .NET .NET (C# a Visual Basic) Stylování Labelu Asp.NET American English version English version

Avatar
trnkto
Člen
Avatar
trnkto:

Ahoj, snažim se udělat hlášky v programu. Chtěl bych aby všechny vypadali stejně a nemusel jsem psát styl ke každému labelu.
Jak to bude fungovat: pokud se něco vykoná správně objeví se label zeleným písmem se zeleným pozadím a rámečkem. Pokud nastane chyba objeví se stejný label s jinym textem ale v červeném.
Problém nastává v tom, že nevím jak třídě předat label jako parametr metody. Ten Samozřejmě není vidět.
Můžete mi prosím poradit?
Kód:
Code behin default.aspx.cs

protected void LinkButtonObnovit_Click(object sender, EventArgs e)
        {
       Hlasky hlaska = new Hlaska();
       hlaska.HlaskaResitel("chyba", LabelObnovit);
        }

Třída Hlasky.cs

public class Hlasky
    {

        public void HlaskaResitel(string text, string priznak, System.Windows.Forms.Label label)
        {
            // System.Windows.Forms.Label label
            string pozadi;
            string ramText;

            if (priznak == "uspech")
            {
                ramText = "#00a000";
                pozadi = "#e0ffe0";
            }
            else
            {
                ramText = "#960000";
                pozadi = "#ffb0b0";
            }

            //System.Windows.Forms.Label label = new System.Windows.Forms.Label();
            label.text = text;
            label.Visible = true;
            label.Padding = new Padding(15, 3, 15, 3);
            label.BackColor = System.Drawing.ColorTranslator.FromHtml(pozadi);
            label.ForeColor = System.Drawing.ColorTranslator.FromHtml(ramText);
        }
    }
Odpovědět 29.5.2015 13:49
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Avatar
trnkto
Člen
Avatar
Odpovídá na trnkto
trnkto:

Omlouvám se za šíření poplašné zprávy. Už jsme to s kolegou dali do hromady.

default.aspx.cs

protected void LinkButtonObnovit_Click(object sender, EventArgs e)
{
   Hlasky hlasky = new hlasky();
   hlaska.HlaskaResitel("Je to chyba", "chyba", LabelObnovit);
}

class Hlasky

public class Hlasky
    {

        //public void HlaskaResitel(string priznak, Object label)
        //{
        //    Label neco = (Label)label;
        public Label HlaskaResitel(string priznak, Label neco)
        {
           // Label neco = new Label();
            // System.Windows.Forms.Label label
            string pozadi;
            string ramText;

            if (priznak == "uspech")
            {
                ramText = "#00a000";
                pozadi = "#e0ffe0";
            }
            else
            {
                ramText = "#960000";
                pozadi = "#ffb0b0";
            }

            //System.Windows.Forms.Label label = new System.Windows.Forms.Label();
            neco.Visible = true;
            neco.Style["padding"] = "3px 15px";
            neco.BackColor = System.Drawing.ColorTranslator.FromHtml(pozadi);
            neco.ForeColor = System.Drawing.ColorTranslator.FromHtml(ramText);
            //label.Style["border"] = "1px solid " + ramText;
            return neco;
        }
    }

Zapomenutý parametr text byl překlep
šlo o špatně dotažené using

Akceptované řešení
+5 Zkušeností
Řešení problému
Nahoru Odpovědět 29.5.2015 14:21
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Avatar
Odpovídá na trnkto
Michal Štěpánek:

Nebylo by jednodušší tam mít dva labely (schované) a podle potřeby zobrazovat ten, či onen?

Nahoru Odpovědět  +1 29.5.2015 14:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
trnkto
Člen
Avatar
Odpovídá na Michal Štěpánek
trnkto:

dalo by se jednodušeji tak mít vždy na stránce, třeba desetkrát label a podle potřeby dotahovat jen styl a text.
LabelObnovit.Text = "Žádost o obnovení byla úspěšně odeslána";
LabelObnovit.CssClass = "uspech";

akorát že z nějakého důvodu server nechce zobrazovat padding a border (v IE).
To to řešení funguje a je použitelné napříč stránkami více méně jako css.

Nahoru Odpovědět 1.6.2015 9:26
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.