Avatar billede scriptkid Nybegynder
25. januar 2010 - 11:32 Der er 1 løsning

postback problem

Hej Eksperter,

Jeg er løbet ind i et problem som jeg ikke lige kan gennemskue hvordan jeg løser. Jeg har denne kode:

using System;
using System.IO;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class Files : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (IsPostBack == false)
        {
            SystemFileList("", true,true);
        }
    }
    public void SystemFileList(string Dir, bool Foward,bool NewFolder)
    {
        if (NewFolder == true)
        {
            Session["ItemCounter"] = 0;
            Session["ItemsToShow"] = 10;
            Session["LocalCounter"] = 0;
        }

        if (Dir == null)
            Dir = "";
           
        DirectoryInfo DirInfo = new DirectoryInfo(Server.MapPath(Dir));
        DirectoryInfo[] SubDirs = DirInfo.GetDirectories();
        FileInfo[] Files = DirInfo.GetFiles();

        int ItemCounter = 0;
        int ItemsToShow = int.Parse(Session["ItemsToShow"].ToString());
        int LocalCounter = 0;
        int Count = 0;

        if (Foward == true)
        {
            if (int.Parse(Session["ItemCounter"].ToString()) == 0 && IsPostBack == true)
                Session["ItemCounter"] = ItemsToShow;         
           
            ItemCounter = int.Parse(Session["ItemCounter"].ToString());
                     
            Session["ItemCounter"] = int.Parse(Session["ItemCounter"].ToString()) + ItemsToShow;

           
               
           
        }
        else
        {
            ItemCounter = int.Parse(Session["ItemCounter"].ToString()) - ItemsToShow;
            Session["ItemCounter"] = int.Parse(Session["ItemCounter"].ToString()) - ItemsToShow;
            if (int.Parse(Session["ItemCounter"].ToString()) < 0)
                Session["ItemCounter"] = 0;

           
        }

        List.Controls.Clear();

        System.Web.UI.HtmlControls.HtmlGenericControl Div1 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        Div1.ID = "FileListLeft";
        Div1.Attributes.Add("class", "filebox");
        List.Controls.Add(Div1);

        System.Web.UI.HtmlControls.HtmlGenericControl Div2 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        Div2.ID = "FileListRight";
        Div2.Attributes.Add("class", "filebox");
        List.Controls.Add(Div2);

        System.Web.UI.HtmlControls.HtmlGenericControl DivH3 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH3.Attributes.Add("class", "fileheaderbox");
        Div1.Controls.Add(DivH3);
       
        System.Web.UI.HtmlControls.HtmlGenericControl DivH4 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH4.Attributes.Add("class", "fileboxheader1");
        DivH4.InnerText = "Type";
        DivH3.Controls.Add(DivH4);

        System.Web.UI.HtmlControls.HtmlGenericControl DivH6 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH6.Attributes.Add("class", "filetext");
        DivH6.InnerText = "name";
        DivH3.Controls.Add(DivH6);

        System.Web.UI.HtmlControls.HtmlGenericControl DivH7 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH7.Attributes.Add("class", "fileheaderbox");
        Div2.Controls.Add(DivH7);

        System.Web.UI.HtmlControls.HtmlGenericControl DivH8 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH8.Attributes.Add("class", "filebox1");
        DivH8.InnerText = "Type";
        DivH7.Controls.Add(DivH8);

       
        System.Web.UI.HtmlControls.HtmlGenericControl DivH10 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        DivH10.Attributes.Add("class", "filetext");
        DivH10.InnerText = "name";
        DivH7.Controls.Add(DivH10);

       
        System.Web.UI.HtmlControls.HtmlGenericControl Divx = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
        Divx.Attributes.Add("class", "clear");
        List.Controls.Add(Divx);


        for (int j = 0; j < SubDirs.Length; j++)
        {
            if (LocalCounter == ItemCounter && Count < ItemsToShow)
            {
                System.Web.UI.HtmlControls.HtmlGenericControl Div3 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div3.Attributes.Add("class", "filecontentbox");

                if ((ItemsToShow / 2) < (Count + 1))
                {
                    Div2.Controls.Add(Div3);
                }
                else
                {
                    Div1.Controls.Add(Div3);
                }

                System.Web.UI.HtmlControls.HtmlGenericControl Div4 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div4.Attributes.Add("class", "filebox1");
                Div3.Controls.Add(Div4);

                System.Web.UI.HtmlControls.HtmlGenericControl Div5 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div5.Attributes.Add("class", "fileimg");
                Div4.Controls.Add(Div5);

                //Image Img = new Image();
                ImageButton Img = new ImageButton();
                Img.ImageUrl = "images/ui/folder_icon.jpg";
                Img.Command += new CommandEventHandler(Img_Command);
                Img.CommandArgument=SubDirs[j].Name;
                Div5.Controls.Add(Img);


                System.Web.UI.HtmlControls.HtmlGenericControl Div6 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div6.Attributes.Add("class", "filetext");
             
                Div3.Controls.Add(Div6);

                LinkButton Link1 = new LinkButton();
                Link1.Command += new CommandEventHandler(Link1_Command);
                Link1.CommandName = SubDirs[j].Name;
                Link1.Text = SubDirs[j].Name;
                Div6.Controls.Add(Link1);

                ItemCounter++;
                Count++;
            }
            LocalCounter++;
        }

        for (int i = 0; i < Files.Length; i++)
        {

            if (LocalCounter == ItemCounter && Count < ItemsToShow)
            {
                System.Web.UI.HtmlControls.HtmlGenericControl Div3 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div3.Attributes.Add("class", "filecontentbox");

                if ((ItemsToShow / 2) < (Count + 1))
                {
                    Div2.Controls.Add(Div3);
                }
                else
                {
                    Div1.Controls.Add(Div3);
                }

                System.Web.UI.HtmlControls.HtmlGenericControl Div4 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div4.Attributes.Add("class", "filebox1");
                Div3.Controls.Add(Div4);

                System.Web.UI.HtmlControls.HtmlGenericControl Div5 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div5.Attributes.Add("class", "fileimg");
                Div4.Controls.Add(Div5);

                Image Img = new Image();
                Img.ImageUrl = "images/ui/image_icon.jpg";
                Div5.Controls.Add(Img);


                System.Web.UI.HtmlControls.HtmlGenericControl Div6 = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
                Div6.Attributes.Add("class", "filetext");
                Div6.InnerText = Files[i].Name;
               
                Div3.Controls.Add(Div6);

                ItemCounter++;
                Count++;
            }
            LocalCounter++;

        }

       
        Session["LocalCounter"] = LocalCounter;

        int x = 0;
        if (IsPostBack == false)
            x = ItemsToShow;

        if (int.Parse(Session["ItemCounter"].ToString()) > x)
        {
            BackBtn.Visible = true;
            BackImg.Visible = true;
        }
        else
        {
            BackBtn.Visible = false;
            BackImg.Visible = false;
        }

        if (int.Parse(Session["ItemCounter"].ToString()) < LocalCounter)
        {
            FowardBtn.Visible = true;
            FowardImg.Visible = true;
        }
        else
        {
            FowardBtn.Visible = false;
            FowardImg.Visible = false;
        }

        if (int.Parse(Session["ItemCounter"].ToString()) > int.Parse(Session["LocalCounter"].ToString()))
            Session["ItemCounter"] = int.Parse(Session["ItemCounter"].ToString()) - ItemsToShow;

        //Label1.Text = "ItemCounter :" + ItemCounter + " |LocalCounter :" + LocalCounter + " |Count : " + Count + " |SessionItemCounter : " + Session["ItemCounter"].ToString();
    }

    void Link1_Command(object sender, CommandEventArgs e)
    {
        SystemFileList("", true, false);
        Ilabel.Text = e.CommandName.ToString();
        throw new NotImplementedException();
    }

    void Img_Command(object sender, CommandEventArgs e)
    {
        Ilabel.Text = "folder : " + e.CommandArgument.ToString();
        SystemFileList(e.CommandArgument.ToString(), true, true);
       
        throw new NotImplementedException();
    }

    public void Back_Click(object sender, EventArgs e)
    {
        SystemFileList("", false,false);
    }

   
    public void Foward_Click(object sender, EventArgs e)
    {
        SystemFileList("", true,false);
    }

    protected void FileItem_Command(object sender, CommandEventArgs e)
    {
        //currentPath = e.CommandArgument.ToString();

        //SystemFilesList(currentPath);
    }

    protected string currentPath
    {
        get
        {
            if (ViewState["currentPath"] != null)
                return (string)ViewState["currentPath"];

            return "";
        }
        set
        {
            ViewState["currentPath"] = value;
        }
    }
}

problemmet er at de Linkbuttons som denne kode generer ikke virker som de skal  "Link1_Command" funktionen køre ikke de funktioner som de er sat til at gøre ??

LinkButton Link1 = new LinkButton();
                Link1.Command += new CommandEventHandler(Link1_Command);
                Link1.CommandName = SubDirs[j].Name;
                Link1.Text = SubDirs[j].Name;
                Div6.Controls.Add(Link1);
Avatar billede scriptkid Nybegynder
25. januar 2010 - 14:45 #1
lukker!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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