Я работаю над страницей, чтобы позволить пользователю импортировать файл Excel в нашу базу данных.Я хочу позволить пользователю манипулировать определенными полями перед фиксацией информации, поэтому я загрузил DataSet из файла Excel и привязал его к GridView.По какой-то причине в rowUpdate моя коллекция NewValues пуста.
Вот мой 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, потому что я не могу гарантировать, что какой-то конкретный столбец уникален.