Это задавали много раз, но я не могу найти прямой ответ.C#, Удалить первую строку из элемента gridview
Используя C#, я использую datatable для заполнения сетки. Первая строка моего datatable содержит заголовки таблиц, поэтому я просматриваю эту строку и заполняю строку заголовка gridview. Но теперь мне нужно избавиться от этой первой строки (строки заголовка) в таблице. Я смотрел на всем протяжении, и все источники согласны, что правильный синтаксис:
strSQL = "SELECT * FROM [Station ID Request$]";
OleDbDataAdapter adaBatch = new OleDbDataAdapter(strSQL, strConnExcel);
DataTable dtBatch = new DataTable();
adaBatch.Fill(dtBatch);
gv_stations.DataSource = dtBatch;
gv_stations.DataBind();
// Fill gridview headers with first row of data (spreadsheet headers)
int i = 0;
foreach (DataColumn col in dtBatch.Columns)
{
gv_stations.HeaderRow.Cells[i].Text = dtBatch.Rows[0][i].ToString();
i++;
}
// Remove the first line of the gridview (contains header info)
gv_stations.DeleteRow(0);
Все работает, но в последней строке, которая дает мне эту ошибку:
System.Web.HttpException (0x80004005): The GridView 'gv_stations' fired
event RowDeleting which wasn't handled. at
System.Web.UI.WebControls.GridView.OnRowDeleting(GridViewDeleteEventArgs e)
at System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32
rowIndex) at System.Web.UI.WebControls.GridView.DeleteRow(Int32 rowIndex)
Каждый ресурс я пытался говорит, что последняя строка должна быть в порядке. Может кто-нибудь сказать, почему я получаю эту ошибку?
EDIT: Вот мой объект gridview, как и требовалось.
<asp:GridView ID="gv_stations" runat="server"
AutoGenerateColumns="True"
CssClass="c_gvv c_gvv_stations_results"
style="white-space:nowrap;">
</asp:GridView>
Почему вы добавляете строку заголовка только для ее удаления? – sr28
Потому что мне нужна эта информация для заполнения строк заголовка. – buckshot
Итак, вы хотите заполнить строку заголовка gridview, это то, что вы пытаетесь достичь? – sr28