2016-08-04 60 views
0

我有一個fileupload控制,我想要filenamecodebehind。我正在使用editindex事件,當我選擇文件並按editindex按鈕時,我得到的null的值爲fileupload。 這裏是我aspx代碼:FileUpload控件在代碼後面檢索空值?

<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(); 
} 

但我在f越來越總是null值。

回答

0

您應該將您的FileUpload控件放在<EditItemTemplate>字段中,而不是<ItemTemplate>

如果你不知道它,請親切的谷歌關於它。

+0

你是什麼意思?我看不懂 –

+0

查看該鏈接 http://www.asp.net/web-forms/overview/data-access/custom-formatting/using-templatefields-in-the-the- gridview-control-cs –

+0

如果我把這個'fileupload'控件放在''裏面,'gridview'顯示時'fileupload'控件會消失。當gridview處於視圖模式時,不會顯示'fileupload' –

0

您應該在GridView的OnRowEdit事件中管理文件上傳控件。

0

UpdatePanel中的網格(和FileUpload控件)?如果是這樣,那就是你的問題所在。要麼刪除更新面板,要麼設置保存按鈕或任何導致回發爲PostBack控件而不是異步回發控件。