2013-04-22 3 views
1

Мне нужно иметь кнопку загрузки файла для каждой строки в виде сетки. Наконец, мне нужна кнопка для загрузки файлов, выбранных из кнопки загрузки файлов. У меня есть код, но у него есть кнопка для загрузки файлов и кнопка для обновления, однако, если я изменю имя команды, она не работает. Ниже мой код.Кнопка загрузки файла для каждой строки внутри gridview и кнопка для загрузки в asp.net

В моем коде я показываю как кнопки загрузки файлов, так и обновления бутона. Это отлично работает, но мне нужно несколько кнопок загрузки файлов с помощью одной кнопки для обновления всех файлов.

<asp:GridView ID="GridView1" runat="server"> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:FileUpload ID="FileUpload1" runat="server" /> 
         <asp:Button ID="Button1" runat="server" CommandArgument='<%# Container.DataItemIndex %>' 
          Text="Upload" OnClick="Button1_Click" /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
     </asp:GridView> 

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      string[] strArray = { "Test1", "Test2", "Test3" }; 
      GridView1.DataSource = strArray; 
      GridView1.DataBind(); 
     } 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     int index = int.Parse(((Button)sender).CommandArgument); 

     FileUpload file = (FileUpload)GridView1.Rows[index].FindControl("FileUpload1"); 

     if (file != null) 
     { 
      if (file.HasFile) 
      { 
       Response.Write(file.PostedFile.FileName); 
       Response.End(); 
       //file.SaveAs(Server.MapPath("~") + "\\DataBind\\" + System.IO.Path.GetFileName(file.PostedFile.FileName)); 
      } 
     } 
    } 

ответ

0

Похоже, вы близки. Вы просто хотите сделать то же самое на всех строках. Вы можете использовать петлю foreach для этого:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in GridView1.Rows) 
    { 
     FileUpload file = (FileUpload)row.FindControl("FileUpload1"); 

     if (file != null) 
     { 
      if (file.HasFile) 
      { 
       // Save your file here 
      } 
     } 
    } 
} 
Смежные вопросы