我需要添加一個帶有文件上傳控件的列到我的網格視圖,以便我可以上傳任何特定行的文件。有沒有可能做到這一點,理想情況下,我需要能夠做到這一點,而不需要將gridview置於編輯狀態。gridview中的文件上傳
4
A
回答
9
可以按如下方式中的使用:
<asp:TemplateField HeaderText="UploadImage">
<ItemTemplate>
<asp:Image ImageUrl="~/images/1.jpg" runat="server" ID="image" /> // shown only when not in edit mode
</ItemTemplate>
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" /> // shown only in edit mode
</EditItemTemplate>
</asp:TemplateField>
最後包含一個如下進入編輯模式。
<asp:commandField showEditButton="true" showCancelButton="true">
然後添加兩個事件如下:
protected void GridView1_RowEditing(object sender, GridViewUpdateEventArgs e)
{
gvwID.EditIndex=e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowCancelEdit(object sender, GridViewUpdateEventArgs e)
{
gvwID.EditIndex=-1;
BindGrid();
}
FileUpload控件,不會自動保存上傳的文件。要保存文件,您需要使用FileUpload控件的SaveAs方法。在使用SaveAs方法之前,您需要爲正在編輯的行獲取FileUpload控件的實例。要獲得控件的實例,可以連接到GridView的RowUpdating事件。下面的代碼將得到FileUpload控件的實例,並保存上傳的文件:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int RowID=Convert.ToInt32(gvwID.DataKeys[e.RowIndex].value);
FileUpload fileUpload = GridView1.Rows[e.RowIndex].FindControl("FileUpload1") as FileUpload;
if(fileUpload.HasFile)
{
fileUpload.SaveAs(System.IO.Path.Combine(Server.MapPath("Images"), fileUpload.FileName));
//update db using the name of the file corresponding to RowID
}
gvwID.EditIndex=-1;
BindGrid();
}
希望這將有助於...
0
下面的鏈接將幫助您:
http://msdn.microsoft.com/en-us/library/7tas5c80.aspx
它添加一個DateTimePicker到datagridview的細胞樣本代碼。 您可以添加FileUpload控件以同樣的方式...
希望這有助於...
0
蘇哈有很大的後文件上傳的全部功能,在GridView
:
Fileupload control in gridview?
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID"
DataSourceID="AccessDataSource1" Width="148px" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblFileUpLoad" runat="server"></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" />
</Columns>
</asp:GridView>
....
0
的EditTemplate看起來是這樣的:
<EditItemTemplate>
<asp:TextBox ID="txtImage" runat="server" Text='<%# Bind("Image") %>' Visible="False"></asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
在代碼在這之後將上傳行更新上的文件:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex] as GridViewRow;
FileUpload FileUpload1 = (FileUpload)GridView1.Rows[e.RowIndex].FindControl("FileUpload1");
if (FileUpload1 != null && FileUpload1.HasFile)
{
FileUpload1.SaveAs(Server.MapPath("~/uploads/" + myfilename));
}
}
此檢查是在到位的情況下沒有f ile被選中以便選擇以前的名字。注意,在編輯模板,我們已經把已可見性設置爲假的文本框結合的圖像名稱在DB
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (GridView1.EditIndex == -1) return;
FileUpload fileUpLoad = GridView1.Rows[GridView1.EditIndex].FindControl("FileUpload1") as FileUpload;
string fileName = fileUpLoad.FileName;
TextBox txtImage = GridView1.Rows[GridView1.EditIndex].FindControl("txtImage") as TextBox;
if (fileUpLoad != null && fileUpLoad.HasFile)
{
txtImage.Text = fileUpLoad.FileName;
}
else
{
txtImage.Text = txtImage.Text;
}
}
0
<asp:ScriptManager runat="server" ID="scm"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="upMain" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView AutoGenerateColumns="False" runat="server" ID="dt">
<Columns>
<asp:TemplateField HeaderText="Catagory">
<ItemTemplate>
<asp:DropDownList runat="server" ID="ddlSubCat">
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Attachments">
<ItemTemplate>
<asp:UpdatePanel runat="server" UpdateMode="Conditional" ID="updFU"> <ContentTemplate>
<asp:FileUpload runat="server" ID="updCon" /><asp:Button runat="server" ID="btnUpload" Text="Upload" />
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnUpload" />
</Triggers>
</asp:UpdatePanel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
相關問題
- 1. GridView內部的文件上傳控件
- 2. 在gridview中上傳的文件的圖標
- 3. 在gridview中使用文件上傳控制面臨的問題
- 4. 在對C#中的GridView編輯模板上傳文件
- 5. 在ASP.NET中使用GridView多文件上傳
- 6. Flajaxian文件上傳控件無法上傳FireFox中的文件
- 7. 將gridview行數據傳遞給gridview行上的文本框
- 8. gridview查找控件(文件上傳)行編輯asp.net
- 9. 訪問在GridView的頁腳文件上傳
- 10. 文件上傳控制這是裏面的GridView不會在asp.net
- 11. Servlets中的文件上傳
- 12. MVC中的文件上傳
- 13. 文件上傳中的NodeJS
- 14. 上傳soapUI中的文件
- 15. Flex中的文件上傳
- 16. Django中的文件上傳
- 17. vuetify中的文件上傳
- 18. 上傳PHP中的文件
- 19. 上傳Android中的文件
- 20. asp.net中的文件上傳
- 21. Intern.js中的文件上傳
- 22. 上傳azure中的文件
- 23. MVC3中的文件上傳
- 24. codeignitor中的文件上傳
- 25. Zend中的文件上傳
- 26. Codeigniter中的文件上傳
- 27. php中的文件上傳
- 28. 上傳servlet中的文件
- 29. 上傳Symfony2.3中的文件
- 30. Valums文件上傳 - 多文件上傳