Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsClientAPIClientAPIRendering server cotrols with AJAXRendering server cotrols with AJAX
Previous
 
Next
New Post
12/9/2005 8:47 AM
 

Hi All

Sometimes you want to render a server control's HTML to a string. Here's how you do that (I took this code from http://www.codeproject.com/aspnet/DAtaGridExportToExcel.asp):

Function GetControlSource(ByVal ctrl As System.Web.UI.WebControls.WebControl) As String
Dim srcWriter As New IO.StringWriter, htmlWriter As _
      
New System.Web.UI.HtmlTextWriter(srcWriter)
ctrl.RenderControl(htmlWriter)
Return srcWriter.ToString
End Function

But then, often you'd like to render the updated HTML back to the client. Suppose you edit an article and want to change its author. You try to choose it from the list and then discover that you have to add a new author. Normally you'll have to go to a separate page and add the author there, than return back and choose the new author. A more natural way would be to add the author here and then have the author list refresh without page refreshing.

So, we can easily add an author using the ClientAPI. Bu how to render the dropdownlist with the newly added author? If you try the code above, you'll have an error because the control is not a part of a page. Here comes my hack. If you use Lutz Roeder's Reflector, you'll see that the exception comes from the Page's VerifyRenderingInServerForm Method. Fortunately, it's overridable, so we can just add the following code to the CDefault class:

Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)

End Sub

Now you can use the code to send any control's source to the client. The client handler should substitute the control's source with the new one, and you can have everything refresh smoothly without postbacks.

Hope this helps

Ulu

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Provider and Extension ForumsProvider and Extension ForumsClientAPIClientAPIRendering server cotrols with AJAXRendering server cotrols with AJAX


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out