Need help in run time screens.http://forums.asp.net/t/950348.aspx/1?Need+help+in+run+time+screens+Wed, 04 Jan 2006 05:38:21 -05009503481156961http://forums.asp.net/p/950348/1156961.aspx/1?Need+help+in+run+time+screens+Need help in run time screens. I want to generate my UI's from using metadata. Should I use custom server controls or do I need something else? I want to generate these UI's for my CRUD operations only. thanks. 2006-01-02T16:43:57-05:001157055http://forums.asp.net/p/950348/1157055.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. <p><font face="Verdana" size="2">A wide ranging question.</font></p> <p><font face="Verdana" size="2">Are you generating the entire ASPX page on the fly, or dynamically creating controls within an existing web page?</font></p> <p><font face="Verdana" size="2">You can create&nbsp;each UI dynamically quite easily using existing controls.&nbsp; Assuming you have enough meta data information, you can set max text lengths, allowed list items, etc.&nbsp; You can use Custom Web Controls as the main block for these processes.</font></p> <p><font face="Verdana" size="2">If you are doing something more off the wall, you might need to go to custom web controls, where you can write your own, or extend the existing controls quite easily.&nbsp; I have written a whole suite of customised controls that implement certain interfaces to manage particular kinds of data (sorry this is a bit vague, but its commercially confidential at present).</font></p> 2006-01-02T19:23:42-05:001157137http://forums.asp.net/p/950348/1157137.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. I want to generate 4 screens. ------------------------------------ 1.Create..New 2.Read...Select 3.Update...Edit 4.Delete...... Case page will have its own attributeTypes ,Company page will have its own attribute types. Do really need custom web server controls or can I solve this problem with System.CodeDom? The part that I am confused if How do I do this if i have to bind the UI to my objects. thanks anyway 2006-01-02T21:51:35-05:001157487http://forums.asp.net/p/950348/1157487.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. <p><font face="Verdana" size="2">The problem you&nbsp;might run into is&nbsp;having to create a dynamic page at run time, that is,&nbsp;both the ASPX file and a supporting DLL from a graph.&nbsp; rather than approach the problem from some compllex technical viewpoint, lets aproach this more simply in order to get an example going.</font></p> <p><font face="Verdana" size="2">Start with just one table that has some columns - It doesn't matter what they are for now.&nbsp; It is a simple matter to get the data using a number of different data providers, whether in the ASPX or code files.&nbsp; We can get the data as a data table, iterate the columns to get information about type, and then display as well edit, delete, or add new rows.&nbsp; Since the column details in the table tell us about the database table, this is a useful start for discussion.</font></p> <p><font face="Verdana" size="2">The example below uses nothing fancy, it simply gets the information from any table you care to supply the name of, and displays the column names, type, and the first ten rows of data (uses a Northwind connection, but you could use any database you want).</font></p> <p><font face="Verdana" size="2">Have a look and think whether this simple approach might fulfil your needs</font></p> <p><font size="2"><font face="Verdana">&lt;%</font><font face="Verdana"><font color="#0000ff">@</font> <font color="#800000">Page</font> <font color="#ff0000">Language</font><font color="#0000ff">=&quot;C#&quot;</font></font><font face="Verdana"> %&gt;</font></font></p> <p><font size="2"><font face="Verdana">&lt;%</font><font face="Verdana"><font color="#0000ff">@</font> <font color="#800000">Import</font> <font color="#ff0000">Namespace</font><font color="#0000ff">=&quot;System.Data&quot;</font> %&gt;</p> </font></font><font color="#0000ff"> <p><font face="Verdana" size="2">&lt;!</font></font><font face="Verdana"><font size="2"><font color="#800000">DOCTYPE</font> <font color="#ff0000">html</font> <font color="#ff0000">PUBLIC</font> <font color="#0000ff"> &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</font> </font></font><font color="#0000ff"><font face="Verdana" size="2">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;</font></p> <p><font face="Verdana" size="2">&lt;</font></font><font face="Verdana"><font size="2"><font color="#800000">script</font> <font color="#ff0000">runat</font><font color="#0000ff">=&quot;server&quot;&gt;</p> </font></font></font> <p><font size="2"><font face="Verdana"><font color="#0000ff">protected</font> <font color="#0000ff"> void</font> Page_Load(<font color="#0000ff">object</font> sender, <font color="#008080"> EventArgs</font></font><font face="Verdana"> e)</font></font></p> <p><font face="Verdana" size="2">{</font></p> <p><font size="2"><font face="Verdana" color="#0000ff">if</font><font face="Verdana"> (!IsPostBack)</font></font></p> <p><font face="Verdana" size="2">{</font></p> <p><font color="#808080"><font face="Verdana" size="2">// get the data as a data table</font></p> </font> <p><font size="2"><font face="Verdana"><font color="#008080">DataView</font> dv = ds.Select(<font color="#0000ff">new</font> <font color="#008080">DataSourceSelectArguments</font>()) <font color="#0000ff">as</font> <font color="#008080">DataView</font></font><font face="Verdana">;</font></font></p> <p><font size="2"><font face="Verdana" color="#008080">DataTable</font><font face="Verdana"> dt = dv.ToTable();</font></font></p> <p><font color="#808080"><font face="Verdana" size="2">// create an ASPX table to render</font></p> </font> <p><font size="2"><font face="Verdana"><font color="#008080">Table</font> t = <font color="#0000ff"> new</font> <font color="#008080">Table</font></font><font face="Verdana">();</font></font></p> <p><font face="Verdana" size="2">pnlData.Controls.Add(t);</font></p> <p><font color="#808080"><font face="Verdana" size="2">// Add table header row of column types</font></p> </font> <p><font size="2"><font face="Verdana"><font color="#008080">TableHeaderRow</font> thr = <font color="#0000ff">new</font> <font color="#008080">TableHeaderRow</font></font><font face="Verdana">();</font></font></p> <p><font face="Verdana" size="2">t.Rows.Add(thr);</font></p> <p><font size="2"><font face="Verdana"><font color="#0000ff">foreach</font> (<font color="#008080">DataColumn</font> dc <font color="#0000ff">in</font></font><font face="Verdana"> dt.Columns)</font></font></p> <p><font face="Verdana" size="2">{</font></p> <p><font size="2"><font face="Verdana"><font color="#008080">TableHeaderCell</font> thc = <font color="#0000ff">new</font> <font color="#008080">TableHeaderCell</font></font><font face="Verdana">();</font></font></p> <p><font size="2"><font face="Verdana">thc.Text = dc.ColumnName &#43; </font><font face="Verdana" color="#800000">&quot;. Type=&quot;</font><font face="Verdana"> &#43; dc.DataType.Name;</font></font></p> <p><font face="Verdana" size="2">thr.Cells.Add(thc);</font></p> <p><font face="Verdana" size="2">}</font></p> <p><font color="#808080"><font face="Verdana" size="2">// add the data from the rows</font></p> </font> <p><font size="2"><font face="Verdana"><font color="#0000ff">foreach</font> (<font color="#008080">DataRow</font> dr <font color="#0000ff">in</font></font><font face="Verdana"> dt.Rows)</font></font></p> <p><font face="Verdana" size="2">{</font></p> <p><font size="2"><font face="Verdana"><font color="#008080">TableRow</font> tr = <font color="#0000ff">new</font> <font color="#008080">TableRow</font></font><font face="Verdana">();</font></font></p> <p><font face="Verdana" size="2">t.Rows.Add(tr);</font></p> <p><font color="#808080"><font face="Verdana" size="2">// add column data to the row</font></p> </font> <p><font size="2"><font face="Verdana"><font color="#0000ff">for</font> (<font color="#0000ff">int</font></font><font face="Verdana"> index = 0; index &lt; dt.Columns.Count; index&#43;&#43;)</font></font></p> <p><font face="Verdana" size="2">{</font></p> <p><font size="2"><font face="Verdana"><font color="#008080">TableCell</font> tc = <font color="#0000ff">new</font> <font color="#008080">TableCell</font></font><font face="Verdana">();</font></font></p> <p><font face="Verdana" size="2">tc.Text = dr[index].ToString();</font></p> <p><font face="Verdana" size="2">tr.Cells.Add(tc);</font></p> <p><font face="Verdana" size="2">}</font></p> <p><font face="Verdana" size="2">}</font></p> <p><font face="Verdana" size="2">}</font></p> <p><font face="Verdana" size="2">}</font></p> <font color="#0000ff"> <p><font face="Verdana" size="2">&lt;/</font></font><font face="Verdana" color="#800000" size="2">script</font><font color="#0000ff"><font face="Verdana" size="2">&gt;</font></p> <p><font face="Verdana" size="2">&lt;</font></font><font face="Verdana"><font size="2"><font color="#800000">html</font> <font color="#ff0000">xmlns</font></font></font><font color="#0000ff"><font face="Verdana" size="2">=&quot;http://www.w3.org/1999/xhtml&quot;&gt;</font></p> <p><font face="Verdana" size="2">&lt;</font></font><font face="Verdana"><font size="2"><font color="#800000">head</font> <font color="#ff0000">runat</font><font color="#0000ff">=&quot;server&quot;&gt;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#0000ff">&lt;</font><font color="#800000">title</font><font color="#0000ff">&gt;</font>Dynamic Data<font color="#0000ff">&lt;/</font><font color="#800000">title</font></font></font><font color="#0000ff"><font face="Verdana" size="2">&gt;</font></p> <p><font face="Verdana" size="2">&lt;/</font></font><font face="Verdana" color="#800000" size="2">head</font><font color="#0000ff"><font face="Verdana" size="2">&gt;</font></p> <p><font face="Verdana" size="2">&lt;</font></font><font face="Verdana"><font size="2"><font color="#800000">body</font><font color="#0000ff">&gt;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#0000ff">&lt;</font><font color="#800000">form</font> <font color="#ff0000">id</font><font color="#0000ff">=&quot;form1&quot;</font> <font color="#ff0000"> runat</font><font color="#0000ff">=&quot;server&quot;&gt;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#0000ff">&lt;</font><font color="#800000">asp</font><font color="#0000ff">:</font><font color="#800000">Panel</font> <font color="#ff0000">ID</font><font color="#0000ff">=&quot;pnlData&quot;</font> <font color="#ff0000"> runat</font><font color="#0000ff">=&quot;server&quot;</font> <font color="#0000ff">/&gt;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#0000ff">&lt;</font><font color="#800000">asp</font><font color="#0000ff">:</font><font color="#800000">SqlDataSource</font> <font color="#ff0000">ID</font><font color="#0000ff">=&quot;ds&quot;</font> <font color="#ff0000"> runat</font><font color="#0000ff">=&quot;server&quot;</font> <font color="#ff0000">ConnectionString</font><font color="#0000ff">=&quot;</font>&lt;%&#36; ConnectionStrings:NorthwindConnectionString %&gt;<font color="#0000ff">&quot;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#ff0000">SelectCommand</font><font color="#0000ff">=&quot;SELECT Top 10 * FROM [Products]&quot;</font> <font color="#0000ff">/&gt;</p> </font></font></font> <p><font face="Verdana"><font size="2"><font color="#0000ff">&lt;/</font><font color="#800000">form</font></font></font><font color="#0000ff"><font face="Verdana" size="2">&gt;</font></p> <p><font face="Verdana" size="2">&lt;/</font></font><font face="Verdana" color="#800000" size="2">body</font><font color="#0000ff"><font face="Verdana" size="2">&gt;</font></p> <p><font face="Verdana" size="2">&lt;/</font></font><font face="Verdana"><font size="2"><font color="#800000">html</font><font color="#0000ff">&gt;</p> </font></font></font> <p><font size="2"></font>&nbsp;</p> 2006-01-03T11:37:55-05:001157791http://forums.asp.net/p/950348/1157791.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. thanks. is there any limitations of this approach? I prefer as simple as possible. 2006-01-03T16:39:26-05:001157906http://forums.asp.net/p/950348/1157906.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. <p><font face="Verdana">Most&nbsp;approaches will be fine for your needs</font></p> <p><font face="Verdana">The one above is the simplest open approach and uses no special classes</font></p> <p><font face="Verdana">If you want to design a process to to create your own classes, then the implementation can be simpler, but the code behind more complex.</font></p> <p><font face="Verdana">Your call</font></p> 2006-01-03T18:29:38-05:001158390http://forums.asp.net/p/950348/1158390.aspx/1?Re+Need+help+in+run+time+screens+Re: Need help in run time screens. thanks.I will give it a try 2006-01-04T05:38:21-05:00