Avatar billede macfreak Nybegynder
10. august 2009 - 19:49 Der er 2 kommentarer

OnSelectedNodeChanged fyrer ikke event på TreeView

Hej Folkens!

Jeg har et problem med et asp:TreeView. Jeg har lavet min egen implementation der nedarver fra TreeView, for at kunne lavet et postback når man afkrydser en checkbox. Dette virker fint, men nu bliver der ikke kastet et event når man vælger en node i træet, dvs. OnSelectedNodeChanged. Det virker fint med en standard TreeView kontrol.

Håber der er nogen der kan se hvor det går galt? Tak!

Her er koden til mit ændrede TreeView:

public class TreeViewCheckbox : ASP.TreeView, IPostBackEventHandler
{
    public event EventHandler CheckClick;

    protected override void Render(HtmlTextWriter writer)
    {
        StringBuilder builder = new StringBuilder();

        using (StringWriter stringWriter = new StringWriter(builder))
        {
            HtmlTextWriter tempWriter = new HtmlTextWriter(stringWriter);
            base.Render(tempWriter);
        }

        string find = "<input type=\"checkbox\" ";
        string replace = "<input type=\"checkbox\" onClick=\"" + getPostBack() + "\" ";

        writer.Write(builder.ToString().Replace(find, replace));
    }

    protected string getPostBack()
    {
        return this.Page.GetPostBackEventReference(this, "@CheckPostBack");
    }

    protected virtual void OnCheckClick(EventArgs e)
    {
        if (CheckClick != null) CheckClick(this, e);
    }

    void IPostBackEventHandler.RaisePostBackEvent(string eventArgument)
    {
        OnCheckClick(new EventArgs());
    }

}
Avatar billede macfreak Nybegynder
11. august 2009 - 15:51 #1
Bump
Avatar billede macfreak Nybegynder
12. august 2009 - 16:23 #2
Bump bump
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
Kurser inden for grundlæggende programmering

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