FileUpload控件在代码后面检索空值?

时间:2016-08-04 08:35:33

标签: c# asp.net file-upload

我有一个fileupload控件,我想在filename中获得codebehind。我在选择文件时使用editindex事件,然后按editindex按钮,我的null值为fileupload。 这是我的aspx代码:

<asp:GridView ID="comp_gr" runat="server"  AutoGenerateColumns="false" OnRowEditing="comp_gr_RowEditing">
<Columns>
<asp:CommandField ShowEditButton="true" ButtonType="Button"  EditText="Complete Task"  ControlStyle-BorderColor="White" ControlStyle-BorderStyle="Double" ControlStyle-BackColor="#990000" />
</Columns
<Columns>
 <asp:TemplateField HeaderText="Attach Document">
 <ItemTemplate>
 <asp:FileUpload  ForeColor="Black" ID="FileUpload1" runat="server" />
  </ItemTemplate>
  </asp:TemplateField>
 </Columns>
 </asp:GridView>

这是我的codebehind

protected void comp_gr_RowEditing(object sender, GridViewEditEventArgs e)
{
FileUpload file = (FileUpload)comp_gr.Rows[e.NewEditIndex].Cells[1].FindControl("FileUpload1");
string f = file.FileName.ToString();
}

但我在null中始终获得f值。

3 个答案:

答案 0 :(得分:0)

您应将FileUpload控件放在<EditItemTemplate>字段中,而不是<ItemTemplate>

如果你不知道它,那就谷歌吧。

答案 1 :(得分:0)

您应该在gridview的OnRowEdit事件中管理文件上载控件。

答案 2 :(得分:0)

UpdatePanel中是否有Grid(以及FileUpload控件)?如果是这样,那就是你的问题所在。删除updatepanel或设置保存按钮或导致回发的任何内容都是PostBack控件而不是异步回发控件。