Я хочу выбрать строку и что-то сделать с ее столбцом Id, однако это не работает, и я сталкиваюсь с ошибкой, упомянутой в конце. Вот что я получил -
Фрагмент ASPxGridView -
<dx:ASPxGridView ID="ASPxGridView1" runat="server" Font-Names="Arial" Font-Size="Small"
Width="100%" ClientInstanceName="grid" oncustomcallback="grid_CustomCallback"
onbeforegetcallbackresult="ASPxGridView1_BeforeGetCallbackResult"
EnableCallBacks="False" EnableRowsCache="False" KeyFieldName="ID">
... Columns here ...
<ClientSideEvents ContextMenu="OnContextMenu" SelectionChanged="OnSelectionChanged" />
</dx:ASPxGridView>
Примечание. Сетка заполняется с помощью DataTable.
Код таблицы данных -
protected DataTable GetHeadlineData(SqlDataReader rdr)
{
DataTable headlineTable = new DataTable();
headlineTable.Load(rdr)
headlineTable.PrimaryKey = new DataColumn[] { headlineTable.Columns["ID"] };
return headlineTable;
}
Код загрузки страницы -
DataTable dt= new DataTable();
dt= FillGrid(); //this function internally calls the above GetHeadlineData function
Session["headTable"] = dt;
ASPxGridView1.DataSource = Session["headTable"];
ASPxGridView1.KeyFieldName = "ID";
ASPxGridView1.DataBind();
Выбор измененных функций -
function OnSelectionChanged(s, e) {
grid.GetSelectedFieldValues("ID", OnGetSelectedFieldValues);
}
function OnGetSelectedFieldValues(result) {
for (var i = 0; i < result.length; i++)
for (var j = 0; j < result[i].length; j++) {
document.getElementById('selectedRowDiv').innerHTML = result[i];
}
}
Ошибка, которую я получаю -
A primary key field specified via the KeyFieldName property is not found in the
underlying data source. Make sure the field name is spelled correctly. Pay
attention to the character case.
DataTable
, с помощью которого вы загружаетеgridview
? - person sarwar026   schedule 18.05.2012