Hi yohana,
I have created sample code which fullfill your requirement.
HTML
<form id="form1" runat="server">
<div>
<asp:Repeater ID="repCustomers" runat="server">
<HeaderTemplate>
<table border="1px" cellpadding="1px" cellspacing="0Px">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:CheckBox ID="Chkbulk" runat="server" />
</td>
<td>
<asp:Label ID="lblCustomerId" Text='<%#Eval("CustomerId") %>' runat="server" />
</td>
<td>
<asp:Label ID="lblCustomerName" Text='<%#Eval("CustomerName") %>' runat="server" />
<asp:TextBox ID="txtCustomerName" runat="server" Width="120" Text='<%# Eval("CustomerName") %>'
Visible="false" />
</td>
<td>
<asp:Label ID="lblCountry" Text='<%#Eval("Country") %>' runat="server" />
<asp:TextBox ID="txtCountry" runat="server" Width="120" Text='<%# Eval("Country") %>'
Visible="false" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</div>
<asp:LinkButton ID="btnEdit" Text="Edit" OnClick="EditMode" runat="server" />
<asp:LinkButton ID="btnUpdate" Text="Update" OnClick="OnUpdate" runat="server" />
</form>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("CustomerId", typeof(int));
dt.Columns.Add("CustomerName", typeof(string));
dt.Columns.Add("Country", typeof(string));
dt.Rows.Add(1, "Peter", "USA");
dt.Rows.Add(2, "John", "Spain");
dt.Rows.Add(3, "Maria ", "Norway");
dt.Rows.Add(4, "Michael Holz", "Denmark");
dt.Rows.Add(5, "Jose Pavarotti", "France");
ViewState["Customers"] = dt;
this.BindRepeater();
}
}
private void BindRepeater()
{
repCustomers.DataSource = (DataTable)ViewState["Customers"];
repCustomers.DataBind();
}
protected void EditMode(object sender, EventArgs e)
{
foreach (RepeaterItem item in repCustomers.Items)
{
bool ischecked = (item.FindControl("Chkbulk") as CheckBox).Checked;
if (ischecked)
{
this.ToggleElements(item, true);
}
}
}
private void ToggleElements(RepeaterItem item, bool isEdit)
{
(item.FindControl("lblCountry") as Label).Visible = !isEdit;
(item.FindControl("lblCustomerName") as Label).Visible = !isEdit;
(item.FindControl("txtCountry") as TextBox).Visible = isEdit;
(item.FindControl("txtCustomerName") as TextBox).Visible = isEdit;
}
protected void OnUpdate(object sender, EventArgs e)
{
foreach (RepeaterItem item in repCustomers.Items)
{
bool ischecked = (item.FindControl("Chkbulk") as CheckBox).Checked;
if (ischecked)
{
DataTable dt = (DataTable)ViewState["Customers"];
string country = (item.FindControl("txtCountry") as TextBox).Text;
string CustomerName = (item.FindControl("txtCustomerName") as TextBox).Text;
dt.Rows[item.ItemIndex]["CustomerName"] = CustomerName;
dt.Rows[item.ItemIndex]["Country"] = country;
ViewState["Customers"] = dt;
}
}
this.BindRepeater();
}
Screenshot
![](https://i.imgur.com/6QLi7Py.gif)