У меня есть 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 == " " ? 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
Поэтому, когда я редактирую данные второй строки, я хочу снова сохранить отредактированные данные в той же строке. Теперь я добавляю отредактированные данные в конце. Как я могу это сделать?