2011-03-23 92 views
0

我在頁面上工作,讓用戶將excel文件導入到我們的數據庫中。我希望允許用戶在提交信息之前操作某些字段,以便從Excel文件加載DataSet並將其綁定到GridView。出於某種原因,rowUpdate我的NewValues集合是空的。使用DataSet源更新GridView

這裏是我的GridView:

<cc1:WWGridView ID="gvImportDisplay" runat="server" CssClass="grid-view" AllowSorting="false" ShowHeader="true" 
    AutoGenerateColumns="true" 
    AutoGenerateEditButton="true" 
    OnRowEditing="gvImportDisplay_RowEditing" 
    OnRowCancelingEdit="gvImportDisplay_RowCancelingEdit" 
    OnRowUpdating="gvImportDisplay_RowUpdating" 
    > 
    <EmptyDataTemplate>0 results found. </EmptyDataTemplate> 
</cc1:WWGridView> 

這裏是我的代碼背後的更新:

protected void gvImportDisplay_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    foreach (DictionaryEntry entry in e.NewValues) 
    { 
     string headerText = entry.Key.ToString(); 
     if (string.IsNullOrEmpty(headerText)) 
      continue; 
     string newValue = entry.Value.ToString(); 
     if (excelDataSet.Tables["ExcelInfo"].Rows[gvImportDisplay.EditIndex][headerText] == null) 
      continue; 
     excelDataSet.Tables["ExcelInfo"].Rows[gvImportDisplay.EditIndex][headerText] = newValue; 
    } 
    gvImportDisplay.EditIndex = -1; 
    RefreshGridView(); 
} 

「excelDataSet」是被保存在回發之間的會話頁面的一個屬性。

當我通過代碼在foreach被完全跳過,因爲e.NewValues.Count = 0

任何人都可以看到爲什麼NewValues將是空的?在更新之前是否需要重新綁定GridView?或者也許是因爲我沒有DataKey它不起作用?沒有列可以用作DataKey,因爲我不能保證任何特定的列是唯一的。

回答

0

e.NewValues仍不能正常工作,我猜是因爲我沒有DataKeys。

我能夠通過手動定義列和執行FindControl來獲取更新,以獲取新值。因爲我將不得不手動定義列來處理網格視圖的另一個方面,所以我將繼續這樣做。