Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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
sexton
Člen
Avatar
sexton:28.10.2014 19:35

Ahoj, zkouším si vytvořit uživatelský ovládací prvek(UOP). Část kódu která se bude opakovat na více stránkách jsem si uložil do souboru Box.ascx. Na webové stránce prvek registruji:
<%@ Register src="Box.ascx" tagname="Box" tagprefix="uc1" %>
Potud mě jde vše ok, stránka je v prohlížeči zobrazena i s UOP.
Nepřišel jsem ale na to jak měnit vlastnosti jednotlivých prvků. Než jsem dal část kódu do UOP stačilo např. Label1.Text = "NOVY TEXT"; ale teď nemůžu přijít na to, jak to udělat když prvek je součástí UOP.
Díky za rady.

 
Odpovědět
28.10.2014 19:35
Avatar
CSharp
Člen
Avatar
CSharp:28.10.2014 20:01

Do zdrojového kódu ovládacího prvku nastav veřejné vlastnosti, ke kterým budeš moct přímo přistupovat i z WebForms takže například takto:

public partial class box : System.Web.UI.UserControl
{
    public String text
    {
        get; set;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = text;
    }
}

a kód samotného webového formuláře:

<%@ Page Language="C#" %>

<%@ Register Src="~/box.ascx" TagPrefix="uc1" TagName="box" %>


<!DOCTYPE html>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        box.text = "Ahoj světe";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <uc1:box runat="server" ID="box" />
    </div>
    </form>
</body>
</html>
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
28.10.2014 20:01
Avatar
sexton
Člen
Avatar
Odpovídá na CSharp
sexton:28.10.2014 21:08

Super. Díky moc.

 
Nahoru Odpovědět
28.10.2014 21:08
Avatar
sexton
Člen
Avatar
Odpovídá na sexton
sexton:5.11.2014 16:39

Mám ještě jeden zádrhel,
potřebuji nastavit počáteční hodnoty TextBoxu. Když jsem je podle výše uvedeného návodu dal do Page_Load, a pak je na webovkách uživatelsky změnil, tak po provedení akce Buttonem se hodnota změnila zpět na hodnotu nastavenou v Page_Load.
Počítám, že počáteční hodnoty budu muset dát jinam než do Page_Load. Poradíte mi někdo kam?

protected void Page_Load(object sender, EventArgs e)
{
TextBox.Text ="100";
}

protected void Button_Click(object sender, EventArgs e)
{

}

 
Nahoru Odpovědět
5.11.2014 16:39
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na sexton
David Hartinger:5.11.2014 16:42

Pokud řešení funguje, tak ho prosím označ jako akceptované. Pro další dotazy prosím příště vytvářej nová vlákna.

Nahoru Odpovědět
5.11.2014 16:42
You are the greatest project you will ever work on.
Avatar
CSharp
Člen
Avatar
Odpovídá na sexton
CSharp:5.11.2014 19:56

V tom co jsi napsal není divu, že se nic neděje. Metoda Button_Click nic nedělá. Jinak co já vím, tak akce Něco_Click se zpracovává potom co se zpracovává Page_Load, tudíž by se ta hodnota měla přepsat tou poslední použitou hodnotou..

Doporučuji ti přečíst si něco o životným cyklu stránky, usnadní ti to pak práci..

 
Nahoru Odpovědět
5.11.2014 19:56
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 6 zpráv z 6.