У меня есть GridView, который заполняется службой, и я добавил ссылку на каждую строку этой сетки, чтобы я мог действовать, когда эта конкретная строка нажата. Я хочу получить некоторые элементы в выбранной строке, но даже если я добавлю событие onSelectedRowChanged, я не получаю это событие для запуска, просто ссылку.Получить значения из GridView
<asp:GridView ID="gvTransactionHistory" runat="server"
AutoGenerateColumns="false"
onselectedindexchanging="gvTransactionHistory_SelectedIndexChanging">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblAmount" runat="server" Text='<%# Eval("preAuthAmount") %>'></asp:Label>
<asp:LinkButton runat="server" Text="Assign+" OnClick="btnAssign"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Вот мой btnAssign нажмите событие, которое работает отлично ...
protected void btnAssign(object sender, EventArgs e)
{
Response.Write("Works!");
}
Я добавил это, чтобы увидеть, если я мог бы вызвать это событие, но я на самом деле не меняется индекс так, что мне нужна помощь с пониманием, какое событие я могу связать, что позволит мне нажать кнопку ссылки и получить значения из строки THAT.
protected void gvTransactionHistory_SelectedIndexChanging(object sender, System.Web.UI.WebControls.GridViewSelectEventArgs e)
{
var amount = gvTransactionHistory.SelectedRow.Cells[3].Text;
Response.Write(amount);
}
Карл, который дал мне строку, но когда я пытаюсь сделать что-то вроде получения поля, например, var amount = theClickedRow.Cells [0] .Text; Я получаю пустой текст, несмотря на данные. Мне нравится этот подход, но я думаю, что мне что-то не хватает .... – user2146538
@ user2146538 - Используйте 'FindControl()' для доступа к серверному элементу управления, см. Обновленный ответ. –