0
我有兩個輸入控件,通過它我需要瀏覽和上載文檔。將兩個數據源綁定到一個網格中
下面是我的ascx
我需要在GridView上傳都德的文件。
下面是我如何實現這個目標的代碼。我爲第一個上傳創建一個數據表,然後爲第二個上傳創建一個第二個數據表,然後將兩個表單合併成一個新的組合表,並將其分配爲gridview的數據源。
namespace Sharepoint.WebParts.Upload_WebPart
{
public partial class Upload_WebPartUserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
this.btnUpload.Click += new EventHandler(btnUploadUploadClick);
this.uploadsupport.Click+=new EventHandler(uploadsupport_Click);
this.btnSubmit.Click += new EventHandler(btnSubmit_Click);
this.dgdUpload.RowDeleting += new GridViewDeleteEventHandler(dgdUpload_RowDeleting);
}
protected void btnUploadUploadClick(object sender, EventArgs e)
{
fileName = System.IO.Path.GetFileName(inputFile.PostedFile.FileName);
string x = Path.GetExtension(fileName);
if (fileName != "")
{
if (x == ".zip")
{
string _fileTime = DateTime.Now.ToFileTime().ToString();
string _fileorgPath = System.IO.Path.GetFullPath(inputFile.PostedFile.FileName);
string _newfilePath = _fileTime + "~" + fileName;
length = (inputFile.PostedFile.InputStream.Length)/1024;
string tempFolder = Environment.GetEnvironmentVariable("TEMP");
string _filepath = tempFolder + _newfilePath;
inputFile.PostedFile.SaveAs(_filepath);
AddRow(fileName, _filepath, length);
lblMessage.Text = "Successfully Added in List";
}
else
{
lblMessage.Text = "Please upload a zip file";
return;
}
}
else
{
lblMessage.Text = "Select a File";
return;
}
}
private void AddMoreColumns()
{
dt = new DataTable("DT");
dc = new DataColumn("FileName", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FilePath", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("FileSize", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("KB", Type.GetType("System.String"));
dt.Columns.Add(dc);
Page.Session["DT"] = dt;
}
private void AddRow(string file, string path, double length)
{
dt = (DataTable)Page.Session["DT"];
if (dt == null)
{
AddMoreColumns();
}
dr = dt.NewRow();
dr["FileName"] = file;
dr["FilePath"] = path;
dr["FileSize"] = Convert.ToString(length);
dr["KB"] = "KB";
dt.Rows.Add(dr);
Page.Session["DT"] = dt;
}
Similary i add rows to the datatable dt1.
protected void bindgridview()
{
dt = (DataTable)Page.Session["DT"];
dt1 = (DataTable)Page.Session["DT1"];
joineddt = (DataTable)Page.Session["Files"];
if (joineddt == null)
{
joineddt = dt.Copy();
joineddt.Merge(dt1);
}
this.dgdUpload.DataSource = joineddt;
this.dgdUpload.DataBind();
Page.Session["Files"] = joineddt;
}}
}
請幫我解決這個問題,也有一個簡單的方法來實現這一目標。
這裏有很多代碼需要梳理,所以讓我們先從一些初始的調試開始......錯誤的核心是網格綁定假定存在「SupportName」列。 (這是你的第二個'HyperLinkField'元素。)表'joineddt'在運行時是否有這樣的列? – David 2011-05-05 19:49:46
我通過了這個錯誤。現在,我得到了2行,其中我應該得到兩個附件的一行...你可以放在一些想法請 – Janet 2011-05-05 20:18:38
只需要更多的調試你的一部分。那些排從哪裏來?他們每次什麼時候被添加到表格中?找到他們被添加的地方,其中將是需要改變的邏輯。也許一個被添加,然後第二個被添加?如果是這樣的話,你可能希望第二個是更新而不是插入。也許他們都是同時添加的?然後,您可能需要編輯它們來自哪裏或如何添加它們,或者手動合併它們並在事後刪除第二個。等等。 – David 2011-05-05 20:21:55