如何在点击上传控制器的按钮时动态添加多个链接按钮
本文关键字:按钮 动态 添加 链接 控制器 | 更新日期: 2023-09-27 18:28:22
我有一个文件上传控制器到ftp服务器。我想检索每个上传文件的文件名,并想将其作为链接按钮显示在同一页面上。因此,我想将链接按钮动态添加到页面中。我已经这样做了。但当上传多个文件时,它会替换之前添加的链接,并且只将最后添加的文件显示为链接按钮。
protected void UploadButton_Click(object sender, EventArgs e)
{
string filename = Path.GetFileName(FileUploadControl.FileName);
Session["f_name"] = filename;
Panel1.Controls.Add(new LiteralControl("<div>"));
LinkButton lb = new LinkButton();
lb.Text = filename;
lb.ID = filename;
Session["lb_pdf"]=lb.Text;
string pdf=(string)Session["lb_pdf"];
Panel1.Controls.Add(lb);
Panel1.Controls.Add(new LiteralControl("</div>"));
lb.PostBackUrl = "Default2.aspx";
如何动态添加多个链接按钮?请帮助
您可以使用List<string>
而不是单个字符串:
List<string> allFiles = new List<string>();
if(Session["f_name"] != null)
allFiles = (List<string>)Session["f_name"];
else
Session["f_name"] = allFiles;
allFiles.Add(filename);
foreach(string fileName in allFiles)
{
// now create the LinkButtons ...
}
请注意,您必须在每次回发时重新创建所有动态创建的控件。因此,如果您可以在不使用UploadButton
的情况下从此页面回发,则应该使用Page_Init
或Page_Load
来重新创建旧的LinkButtons
。这也是生命周期中更好的地方。
请参阅:真正理解动态控制(将动态控制添加到控制树)