An ASP.NET AJAX "ah ha" moment
I've been forcing myself to focus on really diving into the meat of the ASP.NET AJAX framework, and today I had a breakthrough moment.
Unless you've been living under a rock, you know that the framework allows you to declaratively contain
normal ASP.NET stuff in an update panel container, and the post-back
stuff that normally happens on a page, refreshing the whole thing,
automagically just updates a little area of the page instead. Almost no
new learning required. Sweet.
But the real strength comes in the ability to hook into the plumbing and do even more cool stuff. There are a ton of samples.
I wanted to try something simple, to extend a TextBox control that
would update a Label control's text with every single keystroke, via
processing on the server. (Yes, I know this is easily done client-side
I was a little frustrated, because the documentation isn't great. It
lacks context and direction. If I can find a little bit of time I fully
intend to write a tutorial on this. But with enough screwing around, I
a fairly simple C# class, and off I went.
The code for use in the
page is simple, and every key stroke in the text box calls the server,
and the server redraws the contents of the Label:
<asp:TextBox ID="MyText" runat="server" AutoComplete="off" AutoPostBack="true" OnTextChanged="MyText_TextChanged" />
<sample:KeypressExtender ID="KeyPressExtender" runat="server" TargetControlID="MyText" MinimumCharacters="2" />
<asp:UpdatePanel ID="MyUpdate" runat="server" RenderMode="block">
<p><asp:Label ID="Result" runat="server" /></p>
<asp:AsyncPostBackTrigger ControlID="MyText" />
understanding the fairly detailed way in which Microsoft has created an
object model, er, class library. Both. It is one thing but looks like the other. Then it's just a matter of tying together how the client
and server get along.
Now that I really get it, I feel confident I can move forward to make neat stuff.