﻿<?xml version="1.0" encoding="utf-8"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Intersoft Community - aspx</title><link>http://www.intersoftsolutions.com/Community/Tags/aspx/</link><description /><generator>http://www.intersoftsolutions.com</generator><language>en</language><copyright>Copyright 2002 - 2015 Intersoft Solutions Corp. All rights reserved.</copyright><ttl>60</ttl><item><title>Hide webgrid columns, defined in aspx, programmatically</title><link>http://www.intersoftsolutions.com/Community/Tags/aspx/</link><pubDate>Thu, 23 May 2013 06:03:40 GMT</pubDate><dc:creator>sinan.biondic@gmail.com</dc:creator><category>WebGrid</category><category>programmatically</category><category>hide</category><category>columns</category><category>aspx</category><category>markup</category><category>defines</category><description>&lt;p&gt;I have webgrid with all columns that can be contained in datasource, defined in markup. I don't know in advance which columns will come from database so I have to have them all. If I add them from code behind(which old version of application did) I'd have over 2000 lines of code, and now I have about 160 of them because that's how many possible columns exist. I am binding grid to datasource, and of course, if column defined in webgrid doesn't exist in datasource, databinding fails. So what I'm doing in PrepareDataBinding event is check for all columns in grid, if they have their pair in datasource. If not the column is removed from grid's column collection.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p /&gt;&lt;pre&gt;For Each col As WebGridColumn In gridZaposleni.RootTable.Columns
 colName = col.Name
 colMember = col.DataMember
 If Not dt.Columns.Contains(colMember) Then
 gridZaposleni.RootTable.Columns.Remove(col)
 End If
 Next&lt;/pre&gt;
&lt;p&gt; However, this doesn't work because the application fails as it comes to first column that doesn't have it's pair in datasource:&lt;/p&gt;
&lt;p&gt;"Can't find DataColumn with name 'Company' in the specified datasource".&lt;/p&gt;
&lt;p&gt;I also tried, instead of removing column, setting it's Bound and Visible properties to false. That works, but then I have the grid loading 160 columns, and when I have grouped col's, expanding them takes ages.&lt;/p&gt;
&lt;p&gt;There is option to bind grid dynamically to datasource and make it create all columns by itself, but this doesn't work for me because, some columns have formating on them like width, forecolor etc.&lt;/p&gt;
&lt;p&gt;My question is - why isn't my first option, with removing columns, working, and how to solve this problem?&lt;/p&gt;
&lt;p /&gt;</description></item><item><title>Remove column defined in aspx markup, from server-side</title><link>http://www.intersoftsolutions.com/Community/Tags/aspx/</link><pubDate>Tue, 16 Apr 2013 16:03:03 GMT</pubDate><dc:creator>sinan.biondic@gmail.com</dc:creator><category>WebGrid</category><category>DataSource</category><category>Server-side</category><category>serverside</category><category>dynamically</category><category>column</category><category>remove</category><category>Unbound</category><category>DataBind</category><category>collection</category><category>datatable</category><category>PrepareDataBinding</category><category>aspx</category><category>server</category><category>side</category><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I am trying to implement webgrid but the problem exists when I'm binding it to datasource. I have a stored procedure that returns some data.However, I don't know how many columns will be returned in that procedure, but I know the names of all columns that can be returned. So what I wanted to do, is to define all possible columns in aspx page, and in server-side PrepareDataBinding method remove columns from webgrid's column collection that don't have their match in datasource datatable that I'm binding it to.&lt;/p&gt;
&lt;p&gt;This doesn't really work as I get an error stating that columne "XYZ" which is defined in aspx can't be found in datasource, although it was removed (I checked with debugger) in PrepareDataBinding event handler.&lt;/p&gt;
&lt;p&gt;I presume this then is not possible, or am I wrong? The reason I am not creating columns from codebehind is simply that I would have to check datasource for every column to see if it exists and then create that column dynamically and add it to the column collection of webgrid. We did that in old version of our application and that PrepareDataBinding method has over 1600 lines of code, so I am looking for a better way of doing this. Please help me for the love of god!&lt;/p&gt;
&lt;p&gt;This is my PrepareDataBinding method (column named "Check" is rowchecker column so i don't want it removed):&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p /&gt;&lt;pre&gt;Dim dt As DataTable = CType(e.DataSource, DataTable)
 Dim grid As WebGrid = CType(sender, WebGrid)
 Dim colName As String
 For Each col As WebGridColumn In grid.RootTable.Columns
 colName = col.DataMember
 If Not colName = "Check" AndAlso Not dt.Columns.Contains(colName) Then
 grid.RootTable.Columns.Remove(col)
 End If
 Next&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p /&gt;
&lt;p /&gt;</description></item></channel></rss>