Data Binding example

This example shows you how to use data binding with Eiffel.

<html>
<head>

<script language="Eiffel" runat="server">

    page_load (sender: SYSTEM_OBJECT; e: EVENT_ARGS) is
	    -- feature performed on page load.
	require
	    non_void_sender: sender /= Void
	    non_void_e: e /= Void
	local
	    h: HASHTABLE
	do
	    if not page.is_post_back then
		create h.make
		h.add (("key1").to_cil, ("value1").to_cil)
		h.add (("key2").to_cil, ("value2").to_cil)
		h.add (("key3").to_cil, ("value3").to_cil)

		my_data_list.set_data_source (h)
		my_data_list.data_bind
	    end
	end

    data_item (container: WEB_DATA_LIST_ITEM): DICTIONARY_ENTRY is
	    -- Retrieve container.data_item.
	require
	    non_void_container: container /= Void
	do
	    Result ?= container.data_item
	ensure
	    non_void_result: Result /= Void
	end
</script>
</head>

<body>
   <h3><font face="Verdana">DataBinding to a Hashtable</font></h3>
   <form runat=server>
	<asp:DataList id="my_data_list" runat="server"
		BorderColor="black"
		BorderWidth="1"
		GridLines="Both"
		CellPadding="4"
		CellSpacing="0" >
	    <ItemTemplate>
		<%# (data_item (container)).key %> :
		<%# (data_item (container)).value %>
	    </ItemTemplate>

	</asp:DataList>
    </form>

</body>

Here is the output:

 

[run the example]