У меня есть gridview на моей странице aspx, который настраивает событие OnRowCommand, используя серию объектов ASP.NET LinkButton для обработки логики с помощью свойства CommandName. Мне нужно получить доступ к GridViewRow.RowIndex, чтобы извлечь значения из выбранной строки и заметить, что это непубличные члены объекта GridViewCommandEventArgs при отладке приложения
Есть ли способ получить доступ к этому свойству, есть ли лучшая реализация?
Вот мой исходный код:
Страница aspx:
<asp:GridView ID="MyGridView" runat="server" OnRowCommand="MyGirdView_OnRowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton
id="MyLinkButton"
runat="server"
CommandName="MyCommand"
/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
код позади
protected void MyGirdView_OnRowCommand(object sender, GridViewCommandEventArgs e)
{
//need to access row index here....
}
ОБНОВЛЕНИЕ:
@brendan - я получил следующую ошибку компиляции в следующей строке кода:
"Невозможно преобразовать тип
'System.Web.UI.WebControls.GridViewCommandEventArgs'
в
'System.Web.UI.WebControls.LinkButton' "
LinkButton lb = (LinkButton) ((GridViewCommandEventArgs)e.CommandSource);
Я немного изменил код, и сработало следующее решение:
LinkButton lb = e.CommandSource as LinkButton;
GridViewRow gvr = lb.Parent.Parent as GridViewRow;
int gvr = gvr.RowIndex;