Hi bakhtawar,
I have created sample code which full-fill your requirement.
HTML
<form id="form1" runat="server" enctype="multipart/form-data" method="post">
<span style="font-family: Arial">Click to add files</span>
<asp:Button ID="btnAdd" Text="Add" OnClick="OnAdd" runat="server" />
<asp:Panel ID="pnlTemp" runat="server">
</asp:Panel>
<br />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
<asp:Label ID="lblMessage" Text="" runat="server" />
<br />
</form>
C#
static string test = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
test = "TRUE";
AddControl();
if (!IsPostBack)
{
this.pnlTemp.Controls.Clear();
}
}
protected void OnAdd(object sender, EventArgs e)
{
test = "TRUE";
}
private void AddControl()
{
if (test == "FALSE")
{
for (int i = 0; i < Request.Files.Count - 1; i++)
{
AddRemovePanel(i);
}
}
else
{
for (int i = 0; i < Request.Files.Count + 1; i++)
{
AddRemovePanel(i);
}
}
}
private void AddRemovePanel(int i)
{
FileUpload file = new FileUpload();
file.ID = "File" + (i + 1);
Button btnremove = new Button();
btnremove.ID = "btn" + (i + 1);
btnremove.Text = "Remove";
btnremove.Click += new EventHandler(RemoveFileUpload);
Literal li = new Literal();
li.Text = "<br/>";
Panel pnl = new Panel();
pnl.ID = "dynamicpanel" + (i + 1);
pnl.Controls.Add(file);
pnl.Controls.Add(btnremove);
pnl.Controls.Add(li);
this.pnlTemp.Controls.Add(pnl);
}
protected void RemoveFileUpload(object sender, EventArgs e)
{
this.pnlTemp.Controls.Clear();
test = "FALSE";
this.AddControl();
}
protected void btnUpload_Click(object sender, EventArgs e)
{
for (int i = 0; i < Request.Files.Count; i++)
{
HttpPostedFile PostedFile = Request.Files[i];
if (PostedFile.ContentLength > 0)
{
string FileName = System.IO.Path.GetFileName(PostedFile.FileName);
PostedFile.SaveAs(Server.MapPath("Files\\") + FileName);
}
}
lblMessage.Text = "Image Uploaded and Saved Successfully.";
this.pnlTemp.Controls.Clear();
}
Vb.net
Shared test As String = String.Empty
Protected Sub Page_Load(sender As Object, e As EventArgs)
test = "TRUE"
AddControl()
If Not IsPostBack Then
Me.pnlTemp.Controls.Clear()
End If
End Sub
Protected Sub OnAdd(sender As Object, e As EventArgs)
test = "TRUE"
End Sub
Private Sub AddControl()
If test = "FALSE" Then
For i As Integer = 0 To Request.Files.Count - 2
AddRemovePanel(i)
Next
Else
For i As Integer = 0 To Request.Files.Count
AddRemovePanel(i)
Next
End If
End Sub
Private Sub AddRemovePanel(i As Integer)
Dim file As New FileUpload()
file.ID = "File" + (i + 1)
Dim btnremove As New Button()
btnremove.ID = "btn" + (i + 1)
btnremove.Text = "Remove"
btnremove.Click += New EventHandler(AddressOf RemoveFileUpload)
Dim li As New Literal()
li.Text = "<br/>"
Dim pnl As New Panel()
pnl.ID = "dynamicpanel" + (i + 1)
pnl.Controls.Add(file)
pnl.Controls.Add(btnremove)
pnl.Controls.Add(li)
Me.pnlTemp.Controls.Add(pnl)
End Sub
Protected Sub RemoveFileUpload(sender As Object, e As EventArgs)
Me.pnlTemp.Controls.Clear()
test = "FALSE"
Me.AddControl()
End Sub
Protected Sub btnUpload_Click(sender As Object, e As EventArgs)
For i As Integer = 0 To Request.Files.Count - 1
Dim PostedFile As HttpPostedFile = Request.Files(i)
If PostedFile.ContentLength > 0 Then
Dim FileName As String = System.IO.Path.GetFileName(PostedFile.FileName)
PostedFile.SaveAs(Server.MapPath("Files\") & FileName)
End If
Next
lblMessage.Text = "Image Uploaded and Saved Successfully."
Me.pnlTemp.Controls.Clear()
End Sub
Screenshot
