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);