Your question is not very specic. Though, what I have understood, you need to edit a page where you will edit all the details address, mobile, email etc but never the name.
I am not clear what you mean to say binding data to name in every click.
But what I guess is you want the name to be shown in the text box but, user cannot change edit the textbox.
If this is the thing you want, my friend you have thought too far.
Simply populate the data into all textbox, dropdown etc in pageload event.
After the populate code, just disable name textbox control.
Here is the code
aspx page
<div>
<asp:label id="Label1" runat="server" text="Admin Name" xmlns:asp="#unknown"></asp:label>
<asp:textbox id="TextBox1" runat="server" xmlns:asp="#unknown"></asp:textbox>
<br />
<asp:label id="Label2" runat="server" text="Email" xmlns:asp="#unknown"></asp:label>
<asp:textbox id="TextBox2" runat="server" xmlns:asp="#unknown"></asp:textbox>
<br />
<br />
<asp:button id="Button1" runat="server" onclick="Button1_Click" text="Edit" xmlns:asp="#unknown" />
</div>
code behind
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable dtblClient = doPopulate();
foreach (DataRow dr in dtblClient.Rows)
{
TextBox1.Text = dr["name"].ToString();
TextBox2.Text = dr["email"].ToString();
}
TextBox1.Enabled = false;
dtblClient.Dispose();
}
}
private DataTable doPopulate()
{
DataTable dtbl = new DataTable();
dtbl.Columns.Add(new DataColumn("id", Type.GetType("System.Int32")));
dtbl.Columns.Add(new DataColumn("name", Type.GetType("System.String")));
dtbl.Columns.Add(new DataColumn("email", Type.GetType("System.String")));
dtbl.Rows.Add(new object[]{1, "Sandip", "sandip@test.com"});
return dtbl;
}
Hope this helps.
cheers