我有一个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
值。
答案 0 :(得分:0)
您应将FileUpload控件放在<EditItemTemplate>
字段中,而不是<ItemTemplate>
。
如果你不知道它,那就谷歌吧。
答案 1 :(得分:0)
您应该在gridview的OnRowEdit事件中管理文件上载控件。
答案 2 :(得分:0)
UpdatePanel中是否有Grid(以及FileUpload控件)?如果是这样,那就是你的问题所在。删除updatepanel或设置保存按钮或导致回发的任何内容都是PostBack控件而不是异步回发控件。