Here i have one Textbox and a Label inside UpdatePanel and a Repeater out side the UpdatePanel. i have set the AutoPostBack to true for the TextBox. On TextChanged Event i am dispalying text value in label. Here Page_Load event fires only single time.
HTML:
<form id="form1" runat="server">
<asp:ScriptManager runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="True"></asp:TextBox>
<asp:Label ID="lblDemo" Text="" runat="server" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="TextBox1" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>
<table>
<tr>
<th>
Id
</th>
<th>
Name
</th>
<th>
Marks1
</th>
<th>
Marks2
</th>
<th id="marks" runat="server">
Button
</th>
</tr>
<asp:Repeater ID="rptDemo" runat="server">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="lblId" runat="server" Text='<%# Eval("ID")%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name")%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblMarks1" runat="server" Text='<%# Eval("Marks1")%>'></asp:Label>
</td>
<td>
<asp:Label ID="lblMarks2" runat="server" Text='<%# Eval("Marks2")%>'></asp:Label>
</td>
<td>
<asp:Button Text="Click" OnClick="click" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</div>
</form>
C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateRepeater();
}
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
this.lblDemo.Text = TextBox1.Text;
}
protected void click(object sender, EventArgs e)
{
}
private void PopulateRepeater()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[4]{new DataColumn("ID",typeof(int)),
new DataColumn("Name",typeof(string)),
new DataColumn("Marks1",typeof(int)),
new DataColumn("Marks2",typeof(int))});
dt.Rows.Add(1, "John", 85, 75);
dt.Rows.Add(2, "Jack", 87, 74);
dt.Rows.Add(3, "Micheal", 88, 71);
dt.Rows.Add(4, "Mike", 88, 71);
dt.Rows.Add(5, "Drak", 88, 71);
rptDemo.DataSource = dt;
rptDemo.DataBind();
}