Nefunkční LinkButton   otázka

ASP.NET WebForms

Dobrý den,

mám problém s dynamicky generovanými linkbuttony. Jejich přiřazené eventy se nespouštějí.

ASPX:

<%@ Page Language="C#" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <div>
        <form id="AspNetWebForm1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:Panel ID="Panel1" runat="server">
            </asp:Panel>
        </div>
        </form>
    </div>
</body>
</html>

CSharp:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.IO;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
    private string Path = "";

    protected void Page_Load(object sender, EventArgs e)
    {
        foreach (DirectoryInfo Folder in new DirectoryInfo("D:/").GetDirectories())
        {
            LinkButton NameCtl = new LinkButton
            {
                Text = Folder.Name
            };
            NameCtl.ID = NameCtl.ClientID;
            NameCtl.Click += new EventHandler(NameCtl_Click);
            Panel1.Controls.Add(NameCtl);
        }

        //if (!this.IsPostBack)
        {
            this.TextBox1.Text = this.Path;
        }
    }

    private void NameCtl_Click(object sender, EventArgs e)
    {
        this.Path += ((LinkButton)sender).Text;
    }
}

Nevíte jak tento problém vyřešit? Děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A jak víte,že se nespouštějí? zkoušel jsem udělat stejný postup a vše mi funguje korektně.Spusťe si debug a dejte si breakpoint do volání toho eventu a uvidíte zda se volá.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Soudím podle toho, že se nemění proměná string Path.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Usuzování co by to asi mohlo být je totálně na nic...pusťte debug a hned budete chytřejší.Nicméně chyba není ve fci click nebo přiřazení eventu - to funguje.Chyba je tedy v tom zběsilém kódu ohledně práce s directory.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud posuzujete proměnou Path podle toho textboxu, tak to se nedivím, že to nefunguje. Event handler se provede až po Page_Load, takže se do TextBox.Text vždy nastaví prázdný stríng.

Zkrátka

this.TextBox1.Text = this.Path;

musíte dát i do toho handleru...

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback