при нажатии кнопки редактирования щелчок строки в виде сетки отображает данные сетки в текстовом поле - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть сетка, и я пытаюсь сделать, чтобы при нажатии кнопки редактирования любой строки данные этой строки передавались в текстовые поля. Но я не могу этого сделать. Я использовал RowCommand, но все еще не могу получить данные.

код asp

<div class="form-group">
                            <label>FULL NAME</label>
                            <input type="text" class="form-control" runat="server" id="Name" autocomplete="off" />
                        </div>
                        <div class="form-group">
                            <label>GENDER</label><span class="required">*</span>
                            <select class="form-control" id="selectGender" runat="server" style="height: 34px;">
                                <option value="0">MALE</option>
                                <option value="1">FEMALE</option>
                            </select>
                        </div>

<div class="col-md-12">
                        <asp:GridView ID="famGrid" Visible="false"
                            runat="server" OnRowCommand="famGrid_RowCommand">
                            <Columns>
                                <asp:TemplateField HeaderText="S No." ItemStyle-Width="3%">
                                    <ItemTemplate>
                                        <%#Container.DataItemIndex+1 %>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField
                                    HeaderText="FULL NAME" DataField="Name">
                                    <ItemStyle VerticalAlign="Top" />
                                </asp:BoundField>
                                <asp:BoundField
                                    HeaderText="GENDER" DataField="selectGender">
                                    <ItemStyle VerticalAlign="Top" />
                                </asp:BoundField>                                
                                <asp:TemplateField HeaderText="EDIT">
                                        <ItemTemplate>
                                            <asp:Button Text="EDIT" ID="btnEdit" CommandName="ChangeStatus" formnovalidate="formnovalidate" runat="server" />
                                        </ItemTemplate>
                                    </asp:TemplateField>

                            </Columns>
                        </asp:GridView>

код позади

protected void famGrid_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                int selectedRowIndex = -1;
                if (e.CommandName == "ChangeStatus")
                {
                    DataTable dt = ViewState["FamilyTable"] as DataTable;                    
                    GridViewRow gvr = famGrid.SelectedRow;
                    lblRow.Text = gvr.Cells[1].Text;
                    Name.Value = gvr.Cells[2].Text;
                    selectGender.Items[selectGender.SelectedIndex].Text = gvr.Cells[3].Text;
                }
            }
            catch (Exception)
            {

                throw;
            }
        }

Я получаю сообщение об ошибке null reference error.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Пожалуйста, дайте нам знать, по какой линии вы получаете исключение.

0 голосов
/ 27 апреля 2018

Я использовал SelectedIndexChanged. Это работает.

protected void famGrid_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow gvr = famGrid.SelectedRow;
            lblRow.Text = gvr.Cells[1].Text;
            Name.Value = gvr.Cells[2].Text;
            selectGender.Items[selectGender.SelectedIndex].Text = gvr.Cells[3].Text;
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...