Click to See Complete Forum and Search --> : TreeView checkboxes AutoPostBack with AJAX


Dmitry Perets
March 20th, 2007, 03:27 AM
Hello,

There is a known problem with TreeView checkboxes in ASP.NET: they can't do AutoPostBack. So I've solved this problem like this:

<script language="javascript" type="text/javascript">

function postbackOnCheck()
{
var o = window.event.srcElement;
if (o.tagName == 'INPUT' && o.type == 'checkbox' &&
o.name != null && o.name.indexOf('CheckBox') > -1)
{
__doPostBack("","");
}
}

</script>

<asp:TreeView onclick="postbackOnCheck()" ID="treeContent"
runat="server"> ... And so on ... </TreeView> This way I get full postback each time the user checks\unchecks the checkbox.

But now I want to modify this code in order to make use of AJAX: I don't want the FULL postback, but I only want the tree itself to be updated. Of course, I've started by placing it inside the UpdatePanel. But what now? Can somebody help me with this issue?

PeejAvery
March 20th, 2007, 08:38 AM
AJAX does a wonderful job of altering the innerHTML content of DIV tags. Why don't you just re-write that content with the new treeview?

Dmitry Perets
March 21st, 2007, 04:47 AM
AJAX does a wonderful job of altering the innerHTML content of DIV tags. Why don't you just re-write that content with the new treeview?

Hmmm... Can you please give me an example?

PeejAvery
March 21st, 2007, 09:41 AM
It's the most basic form of AJAX. Take a look here (http://w3schools.com/ajax/ajax_intro.asp).

<div id="theDIV"><div>

<script language="JavaScript">
var theDIV = document.getElementById('theDIV');
theDIV.innerHTML = "This will be the DIV's content.";
</script>

Dmitry Perets
March 22nd, 2007, 05:56 AM
No, that won't work for me... There has to be a postback, because my tree is dynamic, it is filled in "lazy" mode on server-side. So I can't check the checkboxes on the client-side - they may not exist there at all...

Do you know how can I update the update panel on the client-side? I know that there is some way using PageRequestManager... But I can't find how exactly this works. This is the only thing I need to solve the issue now...

PeejAvery
March 22nd, 2007, 10:36 AM
Do you know how can I update the update panel on the client-side?
That is exactly what I am trying to show you. AJAX sends data to the server and then sends the data back to the client-side. Did you even browse into the link I posted? There are more pages there to browse. Read the whole AJAX section.