Я использую веб-приложение ASP.NET (.NET Framework).
У меня есть GridView с автоматически сгенерированной кнопкой «Выбрать» и кнопкой «Подтвердить», которая находится за пределами GridView. Я хочу щелкнуть ссылку «Выбрать», чтобы получить DataKeyName (ViewingRequestID) и использовать его в методе onClick кнопки «Подтвердить».
Когда я запускаю свой код, я нажимаю «Выбрать», он выдает правильный ViewRequestID. Но когда я нажимаю «Одобрить» после этого, для ViewRequestID становится 0.
Как мне получить значение, которое останется прежним?
HTML
<asp:GridView ID="gvViewingRequests" runat="server" BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Horizontal" AllowPaging="True" AutoGenerateColumns="False" DataKeyNames="ViewingRequestID" PageSize="5" OnRowCommand="gvViewingRequests_RowCommand" AutoGenerateSelectButton="True">
<AlternatingRowStyle BackColor="#F7F7F7" />
<Columns>
<asp:BoundField DataField="ViewingRequestID" HeaderText="Viewing Request ID" />
<asp:BoundField DataField="ParentID" HeaderText="Parent ID" />
<asp:BoundField DataField="StudentName" HeaderText="Student Name" />
<asp:BoundField DataField="StudentID" HeaderText="Student ID" />
<asp:BoundField DataField="Status" HeaderText="Status" />
<asp:BoundField DataField="DateCreated" HeaderText="Date Created" />
</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Center" />
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<SortedAscendingCellStyle BackColor="#F4F4FD" />
<SortedAscendingHeaderStyle BackColor="#5A4C9D" />
<SortedDescendingCellStyle BackColor="#D8D8F0" />
<SortedDescendingHeaderStyle BackColor="#3E3277" />
</asp:GridView>
Код-за
ViewingRequest viewingRequest = new ViewingRequest();
protected void gvViewingRequests_RowCommand(object sender, GridViewCommandEventArgs e)
{
int i = Convert.ToInt32(e.CommandArgument);
viewingRequest.viewingRequestID = Convert.ToInt32(gvViewingRequests.Rows[i].Cells[1].Text);
}
protected void btnApprove_Click(object sender, EventArgs e)
{
int errorCode = viewingRequest.changeStatus(viewingRequest.viewingRequestID, "A");
if (errorCode == 0)
{
displayViewingRequests();
lblMsg.Text = $"Viewing Request {viewingRequest.viewingRequestID} approved.";
}
}