Я нашел способ получить выбранную строку сетки подробностей, но не уверен, насколько «рекомендовано» делать это таким образом, но для меня это работает нормально, я добавил событие onload()
в сетку деталей, а затем Я смог получить доступ к этому экземпляру gridview, приведя его к ASPxGridView.
Вот мой код, детальная сетка:
<Templates>
<DetailRow>
<dx:ASPxGridView ID="detailGrid" runat="server" DataSourceID="SqlDataSource2"
Width="100%" OnBeforePerformDataSelect="detailGrid_DataSelect"
KeyFieldName="InvoiceID"
EnableCallBacks="False"
onload="detailGrid_Load"
>
и затем я обрабатываю событие onoad()
следующим образом:
ASPxGridView gridView;
protected void detailGrid_Load(object sender, EventArgs e)
{
gridView = sender as ASPxGridView;
gridView.SelectionChanged += new EventHandler(gridView_SelectionChanged);
}
Итак, я только что создал экземпляр ASPxGridView для детальной сетки, и теперь я могу использовать его событие SelectionChanged()
.
private static int invoiceID;
void gridView_SelectionChanged(object sender, EventArgs e)
{
invoiceID = Convert.ToInt64(gridView.GetSelectedFieldValues("InvoiceID")[0]);
}