IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
trnkto
Člen
Avatar
trnkto:29.5.2015 13:49

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
Avatar
trnkto
Člen
Avatar
Odpovídá na trnkto
trnkto:29.5.2015 14:21

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
Avatar
Odpovídá na trnkto
Michal Štěpánek:29.5.2015 14:22

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

Nahoru Odpovědět
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:1.6.2015 9:26

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
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.