Basic Ajax Help

  • Thread starter Thread starter MikeB
  • Start date Start date
M

MikeB

Hello All, I am new to ajax and wanted to start by trying something simple.
I have a web form with an updatepanel and then inside the update panel I
have a listbox. Then outside of the updatepanel I have a button. In my
buttons click event in the cs / code behind, I have a loop that just inserts
items in the listbox. My question is, once I click the button and the loop
begins, how do I get it to update the listbox? Does this make since?
Basically, this kind of mimics a update page I plan on doing next.


TIA
 
That is what I though however, it is not updating. I must be missing
something. Here is my code behind:

protected void Button1_Click(object sender, EventArgs e)
{

Thread firstThread = new Thread(new ThreadStart(Coundown));
firstThread.Start();
}

public void Coundown()
{
for (int i = 0; i < 100; i++)
{

ListBox1.Items.Add(i.ToString());
Thread.Sleep(250);
}
}

Here is my aspx page:

<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:ListBox ID="ListBox1" runat="server"
Width="498px"></asp:ListBox>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ListBox1"
EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
</div>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="Button" />
</form>
 
you're missing the basic concept of browsers and ajax. ajax is a pattern
used in javascript to make a web service call (via xmlhttprequest), and
then process the reponse, usually with some dynamic html.

the updatepanel when triggered:

1. javascript sends a request to page with all form fields via
xmlhttprequest
2. the server processes the form data like a normal postback
3. the server runs a special render that only renders the updatepanel(s)
4. the server sends updatepanel html back the client
5. a javascript async event is fired by xmlhttprequest when the html is
returned
6. javascript event handler replaces the contents of the updatepanel
with the html


so nothing happens in the update anel until the html is sent back.


-- bruce (sqlwork.com)
 
What about adding this to the end of your code:

UpdatePanel1.update();

This will refresh the update panel from outside of the updatepanel to
reflect the changes in the list.

Bjorn
 
Back
Top