Here’s a very simple ASP.NET data source control, useful if you want to bind to data dynamically generated in code-behind. It behaves just like ObjectDataSource but expects to get all its data through event handlers you attach (typically defined on the same control or page).
Here’s an example of how it might be used:
<%@ Import Namespace="System.Collections.Generic" %> <%@ Import Namespace="System.Linq" %> <%@ Register TagPrefix="cjc" Namespace="CJC.Web.UI" %> <asp:DropDownList ID="myList" DataSourceID="myShapedData" runat="server" DataTextField="Text" DataValueField="Value" /> <cjc:InlineDataSource ID="myShapedData" runat="server" OnSelect="myShapedData_Select" /> <script language="C#" runat="server"> private IEnumerable<int> GetSomeData() { return new int[] { 0, 6, 3, 2, 1, 7, 9 }; } private string Lookup( int key ) { switch ( key ) { case 1: return "Thing 1"; case 3: return "Thing 2"; case 7: return "Thing 3"; default: return "I dunno"; } } private void myShapedData_Select( object sender, InlineDataSourceSelectEventArgs e ) { e.ReturnValue = from s in GetSomeData() select new { Text = Lookup( s ), Value = s }; } </script>
You can download InlineDataSource right here.
5 responses so far ↓
mcgurk // December 14, 2007 at 11:58 am |
Howabizzy an example of use?
Chris Pietschmann // December 14, 2007 at 1:14 pm |
Yes, please post an example of its usage.
Chris Cavanagh // December 14, 2007 at 1:38 pm |
mcgurk – Good idea
I’ve added an example (not a good one, but maybe better than none).
3D visualisering // January 20, 2008 at 5:10 pm |
Nice blog!
Chris Cavanagh // January 20, 2008 at 5:33 pm |
3d visualisering – Thanks! Let me know if you’re doing any 3D stuff in Silverlight
(might have some ideas to share)