网格视图编辑后的数据应在回发后张贴到同一行

时间:2018-07-04 08:06:09

标签: asp.net gridview

我有一个具有编辑功能的gridiview。当用户单击“编辑”按钮时,网格的行数据将发布到表单中进行编辑。然后,用户必须按下“提交”按钮以再次将数据添加到网格中。

我想在编辑后将数据发布到网格的同一行,但是我不知道该怎么做,即如果第三行数据被编辑,则在添加按钮上单击,则编辑后的数据应提交到第三行

<div class="form-group">
    <label>NAME</label><span class="required">*</span>
    <input type="text" class="form-control" maxlength="200" runat="server" id="txtName" 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">M</option>
        <option value="1">F</option>
        <option value="2">U</option>
    </select>
</div>
<div class="form-group">
    <div class="col-md-4">
        <asp:Button ID="btnAddFamMem" runat="server" Text="ADD" />
    </div>
</div>

<asp:GridView ID="famGrid" 
    runat="server"
    AutoGenerateColumns="false"
    Width="100%"
    OnSelectedIndexChanged="famGrid_SelectedIndexChanged">
    <Columns>
        <asp:TemplateField HeaderText="S No." ItemStyle-Width="3%">
            <ItemTemplate>
                <%#Container.DataItemIndex+1 %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField
            HeaderText="NAME" DataField="Name">
            <ItemStyle VerticalAlign="Top" />
        </asp:BoundField>
        <asp:BoundField
            HeaderText="GENDER" DataField="Gender">
            <ItemStyle VerticalAlign="Top" />
        </asp:BoundField>                                        
        <asp:CommandField ShowSelectButton="true" SelectText="EDIT" HeaderText="EDIT" ButtonType="Button" />
    </Columns>
</asp:GridView>

逻辑背后的代码

protected void famGrid_SelectedIndexChanged(object sender, EventArgs e)
        {
            GridViewRow gvr = famGrid.SelectedRow;
            selectGender.Value = gvr.Cells[1].Text == "&nbsp;" ? null : gvr.Cells[1].Text;
            selectGender.SelectedIndex = 0;
        }

 protected void btnAddFamMem_Click(object sender, EventArgs e)
        {
               if (!string.IsNullOrEmpty(txtName.Value.Trim()))
                {
                    DataTable dt = (DataTable)ViewState["FamilyTable"];
                    DataRow dr = dt.NewRow();
                    dr["Name"] = txtName.Value.Trim();
                    dr["Gender"] = selectGender.Items[selectGender.SelectedIndex].Text;
                    dt.Rows.Add(dr);
                    BindFamilyGrid();
                }            
        }

假设我的网格数据是::

NAME        GENDER
TSHERIG       M
TONGBA        F
PASNG         M 

因此,当我编辑第二行数据时,我想再次将编辑后的数据保存到同一行。现在,我将最后添加编辑后的数据。我该怎么办?

0 个答案:

没有答案