Получить значение одного столбца в gridview на основе того, какая строка нажата пользователем
У меня есть этот код, и я не могу получить значение номера студента в зависимости от того, по какой строке щелкнул пользователь
ASPX
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
OnSelectedIndexChanged="SelectEvent_click" HorizontalAlign="Center" DataKeyNames="StudentNumber">
<Columns>
<asp:BoundField DataField="StudentNumber" HeaderText="Student Number"/>
<asp:BoundField DataField="F_name" HeaderText="First name"/>
<asp:BoundField DataField="L_name" HeaderText="Last name"/>
<asp:BoundField DataField="Course" HeaderText="Course"/>
<asp:BoundField DataField="Date" HeaderText="Date" DataFormatString="{0:dd-MMM-yyyy}"/>
<asp:TemplateField HeaderText="View Application">
<ItemTemplate>
<asp:LinkButton ID="lnkApplication" runat="server" onClick = "SelectEvent_click"
Text="Select"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
VB
Protected Sub SelectEvent_click(sender As Object, e As EventArgs) Handles GridView1.SelectedIndexChanged
Label1.Text = GridView1.SelectedValue
If GridView1.SelectedIndex >= 0 Then
Response.Write(Label1.Text)
Session("StudentNumber") = Label1.Text
Response.Redirect("PCOApplicationView.aspx")
Else
Response.Write("Something bad happen please try again later!!")
End If
End Sub
1 ответ
Решение
Вы можете использовать свойство NamingContainer для события нажатия кнопки, примерно так:
Dim btn As LinkButton = DirectCast(sender, LinkButton)
GridViewRow = DirectCast(btn.NamingContainer, GridViewRow)