A very simple solution for this is to simply make the table / data view in silverlight. Then use the web service to provide data to the silverlight application.
I am sure that MS will approve it completely.
Otherwise (and you asked him;):
The problem with the ideal solution that you pointed out is that the ASP.Net abstraction hides the reality of double publishing data, and also creates a client interface on the server, when a Silverlight client-side application can do it, it feels great:
Step 1 - Sending html to the client with embedded data
Step 2 - Initializing the Client-Side Application (Silverlight Application)
Step 3 - Click the GenerateXamlFromData Call Button on the Server
Step 4 - Get the same data as in step 1, and then create Xaml from it
Step 5 - Transfer It Back To The Browser
Step 6 - calling a method in a Silverlight application to install Xaml
Steps 3-5 are completely redundant. On the client, you already have data and something that you can create diagrams on the fly, the silverlight application.
If the table had an absolute requirement that the table be in html, then I would decide:
Make your data non-html. Use XML / XSLTransform, JSON / javascript / JQuery or something like your favorite client-side transformation to display it. Web Services, Anything. The main thing here is that you open your web page, an http message back to the data and create your html table on the fly. Then transfer the same data to the silverlight application and create a chart.
Silverlight can dynamically build a chart with a simple object creation. If you really like to poke yourself in the eyes with a pencil, you can still dynamically build Xaml lines and use them to create chart objects, and an easy way to earn the StackOverflow Xaml-Nazi icon
Another solution to your problem, if you really wanted to, you could just pass the Sivlerlight App html table dom and extract data from it. Generally speaking, if you havenβt done something really stupid XML-compliant html tables, just load them into an XDocument.
As for the simple way that you describe, afayk this is not possible. Maybe someday it will be, but to be honest, it will never be a good solution, it will just be a solution for people who want to hack fast and dirty applications.