Получить GridView DataKeyName и использовать его во внешней кнопке - PullRequest
0 голосов
/ 30 июня 2018

Я использую веб-приложение 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.";
        }
    }        
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...