我必须点击两次链接按钮才能更改页面

  • 本文关键字:按钮 链接 两次 asp.net
  • 更新时间 :
  • 英文 :


我必须单击链接按钮两次才能更改页面并加载当前文件夹的子文件夹。我想我的会议和活动有一些问题。

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TableRow r = new TableRow();
TableCell c1 = new TableCell();
LinkButton l = new LinkButton();
var strarray = Server.MapPath(Session["url"].ToString()).Split(Path.DirectorySeparatorChar);
Table table = new Table();
l.ID = "lable" + table.Rows.Count;
l.Text = strarray.Last();
l.EnableViewState = true;
r.ID = "newRow" + table.Rows.Count;
c1.ID = "newC1" + table.Rows.Count;
c1.Controls.Add(l);
r.Cells.Add(c1);
table.Rows.Add(r);
this.form1.Controls.Add(table);
}
else
{
if(Directory.Exists(Server.MapPath(Session["url"].ToString())))
{
string[] allFolders = Directory.GetDirectories(Server.MapPath(Session["url"].ToString()));
Table table = new Table();
foreach (string str in allFolders)
{
TableRow r = new TableRow();
TableCell c1 = new TableCell();
LinkButton l = new LinkButton();
var strarray = str.Split(Path.DirectorySeparatorChar);
l.ID = strarray.Last();
l.CommandName = "createLink";
l.Click+= new EventHandler(LinkButton_Command);
l.Text = strarray.Last();
l.EnableViewState = true;                  
r.ID = "newRow" + table.Rows.Count;
c1.ID = "newC1" + table.Rows.Count;
c1.Controls.Add(l);
r.Cells.Add(c1);
table.Rows.Add(r);
this.form1.Controls.Add(table);
}
}
else
{
Work work=new Work();
work.SetFolder(Session["url"].ToString());
work.CreateFolder();
}
}
}
public void LinkButton_Command(object sender, EventArgs e)
{
Session["url"] = Session["url"] + "\" + ((LinkButton)sender).ID;
}

我认为这是因为Page_Load()方法是在LinkButton_Command()之前调用的。会话变量Session["url"]在执行Page_Load()中的代码时仍然包含以前的值。

尝试将代码从Page_Load()的else分支移动到LinkButton_Command()的末尾。

把你的答案和我的程序弄混后,得出一个有效的答案。

protected void Page_Load(对象发送方,EventArgs e){if(Directory.Exists(Server.MapPath(Session["url"].ToString())){string[]allFolders=Directory.GetDirectories(Server.MapPath(Session["url"].ToString());Table Table=new Table();foreach(allFolders中的字符串str){TableRow r=新TableRow();TableCell c1=新建TableCell();LinkButton l=新的LinkButton();var strarray=str.Split(Path.DirectorySeparatorChar);l.ID=阵列。Last();l.CommandName="createLink";l.单击+=新建事件处理程序(LinkButton_Command);l.文本=阵列。Last();l.EnableViewState=true;r.ID="newRow"+表格。Rows.Count;c1.ID="newC1"+表格。Rows.Count;c1.Controls.Add(l);r.Cells.Add(c1);桌子Rows.Add(r);this.form1.Controls.Clear();this.form1.Controls.Add(表);}}

}
public void LinkButton_Command(object sender, EventArgs e)
{
Session["url"] = Session["url"] + "\" + ((LinkButton)sender).ID;
if (Directory.Exists(Server.MapPath(Session["url"].ToString())))
{
string[] allFolders = Directory.GetDirectories(Server.MapPath(Session["url"].ToString()));
Table table = new Table();
foreach (string str in allFolders)
{
TableRow r = new TableRow();
TableCell c1 = new TableCell();
LinkButton l = new LinkButton();
var strarray = str.Split(Path.DirectorySeparatorChar);
l.ID = strarray.Last();
l.CommandName = "createLink";
l.Click += new EventHandler(LinkButton_Command);
l.Text = strarray.Last();
l.EnableViewState = true;
r.ID = "newRow" + table.Rows.Count;
c1.ID = "newC1" + table.Rows.Count;
c1.Controls.Add(l);
r.Cells.Add(c1);
table.Rows.Add(r);
this.form1.Controls.Clear();
this.form1.Controls.Add(table);
}
}
}

最新更新