<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://forums.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tag 'GridViewAdapter'</title><link>http://forums.asp.net/search/SearchResults.aspx?q=&amp;tag=GridViewAdapter&amp;orTags=0&amp;o=DateDescending</link><description>Search results matching tag 'GridViewAdapter'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>GridView - adapter to render div for &amp;lt;table&amp;gt;, &amp;lt;tr&amp;gt; and &amp;lt;td&amp;gt;</title><link>http://forums.asp.net/thread/2059494.aspx</link><pubDate>Fri, 14 Dec 2007 05:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:2059494</guid><dc:creator>Deepesh</dc:creator><description>&lt;p&gt;&amp;nbsp;Hello,&lt;/p&gt;&lt;p&gt;I want that my gridview should render &amp;lt;div&amp;gt; for all the elements like &amp;lt;table&amp;gt; ,&amp;lt;tr&amp;gt; and &amp;lt;td&amp;gt;&lt;/p&gt;&lt;p&gt;How this can be done?&lt;/p&gt;&lt;p&gt;Thanks,&lt;/p&gt;&lt;p&gt;Deepes Verma&amp;nbsp;&lt;/p&gt;</description></item><item><title>Re: Support for EmptyDataTemplate</title><link>http://forums.asp.net/thread/1641352.aspx</link><pubDate>Wed, 28 Mar 2007 04:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1641352</guid><dc:creator>dbhikadiya</dc:creator><description>&lt;p&gt;This fix injects an issue in existing rendering function. I am seeing it in VB.Net. However, I think it may be same for C#.&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;span class=kwd&gt;Public Class&lt;/span&gt; GridViewAdapter
  &lt;span class=kwd&gt;Inherits&lt;/span&gt; System.Web.UI.WebControls.Adapters.WebControlAdapter
  &lt;span class=kwd&gt;Private Sub&lt;/span&gt; WriteRows(&lt;span class=kwd&gt;ByVal&lt;/span&gt; writer &lt;span class=kwd&gt;As&lt;/span&gt; HtmlTextWriter, &lt;span class=kwd&gt;ByVal&lt;/span&gt; gridView &lt;span class=kwd&gt;As&lt;/span&gt; GridView, &lt;span class=kwd&gt;ByVal&lt;/span&gt; rows &lt;span class=kwd&gt;As&lt;/span&gt; GridViewRowCollection, &lt;span class=kwd&gt;ByVal&lt;/span&gt; tableSection &lt;span class=kwd&gt;As String&lt;/span&gt;)
  ...

  &lt;span class=kwd&gt;Dim&lt;/span&gt; cell &lt;span class=kwd&gt;As&lt;/span&gt; TableCell
  &lt;span class=kwd&gt;For Each&lt;/span&gt; cell &lt;span class=kwd&gt;In&lt;/span&gt; row.Cells
    &lt;strong&gt;&lt;u&gt;&lt;span class=kwd&gt;Dim&lt;/span&gt; fieldCell &lt;span class=kwd&gt;As&lt;/span&gt; DataControlFieldCell = cell&lt;/u&gt;&lt;/strong&gt;

  ...
  &lt;span class=kwd&gt;End Sub&lt;/span&gt;

...
&lt;span class=kwd&gt;End Class&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;For &lt;em&gt;EmptyDataTemplate&lt;/em&gt;, &lt;em&gt;cell&lt;/em&gt; is of type &lt;em&gt;TableCell&lt;/em&gt; which throws an exception as it can not be&amp;nbsp;casted to &lt;em&gt;DataControlFieldCell&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Here is the suggested fix:&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;span class=kwd&gt;Public Class&lt;/span&gt; GridViewAdapter
  &lt;span class=kwd&gt;Inherits&lt;/span&gt; System.Web.UI.WebControls.Adapters.WebControlAdapter
  &lt;span class=kwd&gt;Private Sub&lt;/span&gt; WriteRows(&lt;span class=kwd&gt;ByVal&lt;/span&gt; writer &lt;span class=kwd&gt;As&lt;/span&gt; HtmlTextWriter, &lt;span class=kwd&gt;ByVal&lt;/span&gt; gridView &lt;span class=kwd&gt;As&lt;/span&gt; GridView, &lt;span class=kwd&gt;ByVal&lt;/span&gt; rows &lt;span class=kwd&gt;As&lt;/span&gt; GridViewRowCollection, &lt;span class=kwd&gt;ByVal&lt;/span&gt; tableSection &lt;span class=kwd&gt;As String&lt;/span&gt;)
  ...

  &lt;span class=kwd&gt;Dim&lt;/span&gt; cell &lt;span class=kwd&gt;As&lt;/span&gt; TableCell
  &lt;span class=kwd&gt;For Each&lt;/span&gt; cell &lt;span class=kwd&gt;In&lt;/span&gt; row.Cells
    &lt;strong&gt;&lt;u&gt;&lt;span class=kwd&gt;If&lt;/span&gt; (&lt;span class=kwd&gt;TypeOf&lt;/span&gt; cell &lt;span class=kwd&gt;Is&lt;/span&gt; DataControlFieldCell) &lt;/u&gt;&lt;/strong&gt;&lt;span class=kwd&gt;&lt;strong&gt;&lt;u&gt;Then&lt;/u&gt;&lt;/strong&gt;
      Dim&lt;/span&gt; fieldCell &lt;span class=kwd&gt;As&lt;/span&gt; DataControlFieldCell = cell
      ...
    &lt;span class=kwd&gt;&lt;strong&gt;&lt;u&gt;End If&lt;/u&gt;&lt;/strong&gt;&lt;/span&gt;
  ...
  &lt;span class=kwd&gt;End Sub&lt;/span&gt;

...
&lt;span class=kwd&gt;End Class&lt;/span&gt;
&lt;/pre&gt;&amp;nbsp;</description></item><item><title>GridViewAdapter + AJAX</title><link>http://forums.asp.net/thread/1600205.aspx</link><pubDate>Thu, 01 Mar 2007 05:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1600205</guid><dc:creator>stolin</dc:creator><description>&lt;p&gt;We've just implemented CSS Friendly Control Adapters. We are also using AJAX extensions. &lt;/p&gt;
&lt;p&gt;The problem is GridViewAdapter and row's postback. Clicking on a row resuls in "&lt;em&gt;Invalid postback or callback argument. &amp;nbsp;Event validation is enabled using &amp;lt;pages enableEventValidation="true"/&amp;gt; in configuration or &amp;lt;%@ Page EnableEventValidation="true" %&amp;gt; in a page. &amp;nbsp;For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. &amp;nbsp;If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation." &lt;/em&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;I suspect it’s due to there is no method defined, but I don't have any prove. Before we installed the adapter it worked fine. We were binding some java script on each row. First we thought it was something to to with that. But the error remains even after we disable OnRowDataBound.&lt;font color=#ff0000 size=2&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:EN-US;"&gt;&lt;font size=3&gt;&lt;font face="Times New Roman"&gt;Bug? Is there a simple way to solve this? &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>GridViewAdapter Beta 3.0 with added support for CssClass, ClientID, HeaderStyle-CssClass, row.CssClass, row.Attributes</title><link>http://forums.asp.net/thread/1457609.aspx</link><pubDate>Wed, 08 Nov 2006 05:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1457609</guid><dc:creator>adk</dc:creator><description>&lt;p&gt;Hi guys,&lt;/p&gt;
&lt;p&gt;While using the &amp;nbsp;Css Friendly Adapter for the GridView, I've run into several properties that are not being rendered.&lt;/p&gt;
&lt;p&gt;Over time,&amp;nbsp;I've implemented support for several of those properties, as I needed to use them.&lt;/p&gt;
&lt;p&gt;These range from declarative properties like &lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;/pre&gt;&amp;nbsp;&amp;lt;asp:GridView&amp;gt;: CssClass,&amp;nbsp; ID 
&lt;p&gt;&amp;lt;asp:TemplateField/BoundField...&amp;gt; : &amp;nbsp;HeaderStyle-CssClass&lt;/p&gt;
&lt;p&gt;&amp;nbsp;to programmatically exposed properties like &lt;/p&gt;
&lt;p&gt;GridViewRow.CssClass &lt;/p&gt;
&lt;p&gt;GridViewRow.Attributes, GridViewRow.Styles&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;The code below is the GridViewAdapter.cs (beta 3.0) class with added support for the above-mentioned properties. (sorry, could not attach the file)&lt;/p&gt;
&lt;p&gt;(The added code sections are preceeded by a comment starting with //ADK.)&lt;/p&gt;&lt;pre class=coloredcode&gt;&lt;span class=kwd&gt;using&lt;/span&gt; System;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Data;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Collections;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Configuration;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.Security;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.WebControls;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.WebControls.WebParts;
&lt;span class=kwd&gt;using&lt;/span&gt; System.Web.UI.HtmlControls;

&lt;span class=kwd&gt;namespace&lt;/span&gt; CSSFriendly
{
    &lt;span class=kwd&gt;public class&lt;/span&gt; GridViewAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
    {
        &lt;span class=kwd&gt;private&lt;/span&gt; WebControlAdapterExtender _extender = &lt;span class=kwd&gt;null&lt;/span&gt;;
        &lt;span class=kwd&gt;private&lt;/span&gt; WebControlAdapterExtender Extender
        {
            &lt;span class=kwd&gt;get&lt;/span&gt;
            {
                &lt;span class=kwd&gt;if&lt;/span&gt; (((_extender == &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (Control != &lt;span class=kwd&gt;null&lt;/span&gt;)) ||
                    ((_extender != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (Control != _extender.AdaptedControl)))
                {
                    _extender = &lt;span class=kwd&gt;new&lt;/span&gt; WebControlAdapterExtender(Control);
                }

                System.Diagnostics.Debug.Assert(_extender != &lt;span class=kwd&gt;null&lt;/span&gt;, &lt;span class=st&gt;"CSS Friendly adapters internal error"&lt;/span&gt;, &lt;span class=st&gt;"Null extender instance"&lt;/span&gt;);
                &lt;span class=kwd&gt;return&lt;/span&gt; _extender;
            }
        }

        &lt;span class=cmt&gt;/// ///////////////////////////////////////////////////////////////////////////////
        /// PROTECTED        &lt;/span&gt;
        
        &lt;span class=kwd&gt;protected override void&lt;/span&gt; OnInit(EventArgs e)
        {
            &lt;span class=kwd&gt;base&lt;/span&gt;.OnInit(e);

            &lt;span class=kwd&gt;if&lt;/span&gt; (Extender.AdapterEnabled)
            {
                RegisterScripts();
            }
        }

        &lt;span class=kwd&gt;protected override void&lt;/span&gt; RenderBeginTag(HtmlTextWriter writer)
        {
            &lt;span class=kwd&gt;if&lt;/span&gt; (Extender.AdapterEnabled)
            {
                Extender.RenderBeginTag(writer, &lt;span class=st&gt;"AspNet-GridView"&lt;/span&gt;);
            }
            &lt;span class=kwd&gt;else&lt;/span&gt;
            {
                &lt;span class=kwd&gt;base&lt;/span&gt;.RenderBeginTag(writer);
            }
        }

        &lt;span class=kwd&gt;protected override void&lt;/span&gt; RenderEndTag(HtmlTextWriter writer)
        {
            &lt;span class=kwd&gt;if&lt;/span&gt; (Extender.AdapterEnabled)
            {
                Extender.RenderEndTag(writer);
            }
            &lt;span class=kwd&gt;else&lt;/span&gt;
            {
                &lt;span class=kwd&gt;base&lt;/span&gt;.RenderEndTag(writer);
            }
        }

        &lt;span class=kwd&gt;protected override void&lt;/span&gt; RenderContents(HtmlTextWriter writer)
        {
            &lt;span class=kwd&gt;if&lt;/span&gt; (Extender.AdapterEnabled)
            {
                GridView gridView = Control &lt;span class=kwd&gt;as&lt;/span&gt; GridView;
                &lt;span class=kwd&gt;if&lt;/span&gt; (gridView != &lt;span class=kwd&gt;null&lt;/span&gt;)
                {
                    writer.Indent++;
                    WritePagerSection(writer, PagerPosition.Top);

                    writer.WriteLine();
                    writer.WriteBeginTag(&lt;span class=st&gt;"table"&lt;/span&gt;);
					
					&lt;span class=cmt&gt;//ADK: added CssClass and ClientID support&lt;/span&gt;
					writer.WriteAttribute(&lt;span class=st&gt;"class"&lt;/span&gt;, Control.CssClass);
					writer.WriteAttribute(&lt;span class=st&gt;"id"&lt;/span&gt;, Control.ClientID);

                    writer.WriteAttribute(&lt;span class=st&gt;"cellpadding"&lt;/span&gt;, &lt;span class=st&gt;"0"&lt;/span&gt;);
                    writer.WriteAttribute(&lt;span class=st&gt;"cellspacing"&lt;/span&gt;, &lt;span class=st&gt;"0"&lt;/span&gt;);
                    writer.WriteAttribute(&lt;span class=st&gt;"summary"&lt;/span&gt;, Control.ToolTip);
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;

                    ArrayList rows = &lt;span class=kwd&gt;new&lt;/span&gt; ArrayList();
                    GridViewRowCollection gvrc = &lt;span class=kwd&gt;null&lt;/span&gt;;

                    &lt;span class=cmt&gt;///////////////////// HEAD /////////////////////////////&lt;/span&gt;

                    rows.Clear();
                    &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.ShowHeader &amp;amp;&amp;amp; (gridView.HeaderRow != &lt;span class=kwd&gt;null&lt;/span&gt;))
                    {
						&lt;span class=cmt&gt;//ADK: added support for HeaderStyle-CssClass (&amp;lt;TemplateField&amp;gt;, &amp;lt;BoundField&amp;gt;...)&lt;/span&gt;
						&lt;span class=kwd&gt;int&lt;/span&gt; i = 0;
						&lt;span class=kwd&gt;foreach&lt;/span&gt; (DataControlField col &lt;span class=kwd&gt;in&lt;/span&gt; gridView.Columns)
						{
							&lt;span class=kwd&gt;if&lt;/span&gt; (col.HeaderStyle.CssClass != &lt;span class=kwd&gt;null&lt;/span&gt;)
							{
								gridView.HeaderRow.Cells[i].CssClass = col.HeaderStyle.CssClass;
							}
							i++;
						}

                        rows.Add(gridView.HeaderRow);
                    }
                    gvrc = &lt;span class=kwd&gt;new&lt;/span&gt; GridViewRowCollection(rows);
                    WriteRows(writer, gridView, gvrc, &lt;span class=st&gt;"thead"&lt;/span&gt;);

                    &lt;span class=cmt&gt;///////////////////// FOOT /////////////////////////////&lt;/span&gt;

                    rows.Clear();
                    &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.ShowFooter &amp;amp;&amp;amp; (gridView.FooterRow != &lt;span class=kwd&gt;null&lt;/span&gt;))
                    {
                        rows.Add(gridView.FooterRow);
                    }
                    gvrc = &lt;span class=kwd&gt;new&lt;/span&gt; GridViewRowCollection(rows);
                    WriteRows(writer, gridView, gvrc, &lt;span class=st&gt;"tfoot"&lt;/span&gt;);

                    &lt;span class=cmt&gt;///////////////////// BODY /////////////////////////////&lt;/span&gt;

                    WriteRows(writer, gridView, gridView.Rows, &lt;span class=st&gt;"tbody"&lt;/span&gt;);

                    &lt;span class=cmt&gt;////////////////////////////////////////////////////////&lt;/span&gt;

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag(&lt;span class=st&gt;"table"&lt;/span&gt;);

                    WritePagerSection(writer, PagerPosition.Bottom);

                    writer.Indent--;
                    writer.WriteLine();
                }
            }
            &lt;span class=kwd&gt;else&lt;/span&gt;
            {
                &lt;span class=kwd&gt;base&lt;/span&gt;.RenderContents(writer);
            }
        }

        &lt;span class=cmt&gt;/// ///////////////////////////////////////////////////////////////////////////////
        /// PRIVATE        &lt;/span&gt;

        &lt;span class=kwd&gt;private void&lt;/span&gt; RegisterScripts()
        {
        }

        &lt;span class=kwd&gt;private void&lt;/span&gt; WriteRows(HtmlTextWriter writer, GridView gridView, GridViewRowCollection rows, &lt;span class=kwd&gt;string&lt;/span&gt; tableSection)
        {
            &lt;span class=kwd&gt;if&lt;/span&gt; (rows.Count &amp;gt; 0)
            {
                writer.WriteLine();
                writer.WriteBeginTag(tableSection);
                writer.Write(HtmlTextWriter.TagRightChar);
                writer.Indent++;

                &lt;span class=kwd&gt;foreach&lt;/span&gt; (GridViewRow row &lt;span class=kwd&gt;in&lt;/span&gt; rows)
                {
                    writer.WriteLine();
                    writer.WriteBeginTag(&lt;span class=st&gt;"tr"&lt;/span&gt;);

                    &lt;span class=kwd&gt;string&lt;/span&gt; className = GetRowClass(gridView, row);
					&lt;span class=cmt&gt;//ADK: added support for row.CssClass 
					//(e.g. when programmatically setting e.Row.CssClass inside the rowdatabound event)&lt;/span&gt;
					&lt;span class=kwd&gt;if&lt;/span&gt; (row.CssClass != &lt;span class=kwd&gt;null&lt;/span&gt; &amp;amp;&amp;amp; !row.CssClass.Equals(&lt;span class=kwd&gt;string&lt;/span&gt;.Empty))
					{
						&lt;span class=kwd&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(className))
							className += &lt;span class=st&gt;" "&lt;/span&gt;;
						className += row.CssClass;
					}

                    &lt;span class=kwd&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(className))
                    {
                        writer.WriteAttribute(&lt;span class=st&gt;"class"&lt;/span&gt;, className);
                    }
					&lt;span class=cmt&gt;//ADK: added support for row.attributes
					//(e.g. when doing e.Row.Attributes.Add inside the rowdatabound event)

					//this covers row.Styles as well, as they will appear in the attributes collection 
					//as a single style attribute&lt;/span&gt;
					&lt;span class=kwd&gt;if&lt;/span&gt; (row.Attributes.Count &amp;gt; 0)
					{
						&lt;span class=kwd&gt;foreach&lt;/span&gt; (&lt;span class=kwd&gt;string&lt;/span&gt; key &lt;span class=kwd&gt;in&lt;/span&gt; row.Attributes.Keys)
						{
							writer.WriteAttribute(key, row.Attributes[key]);
						}
					}

                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;

                    &lt;span class=kwd&gt;foreach&lt;/span&gt; (TableCell cell &lt;span class=kwd&gt;in&lt;/span&gt; row.Cells)
                    {
                        DataControlFieldCell fieldCell = cell &lt;span class=kwd&gt;as&lt;/span&gt; DataControlFieldCell;
                        &lt;span class=kwd&gt;if&lt;/span&gt; ((fieldCell != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (fieldCell.ContainingField != &lt;span class=kwd&gt;null&lt;/span&gt;))
                        {
                            DataControlField field = fieldCell.ContainingField;
                            &lt;span class=kwd&gt;if&lt;/span&gt; (!field.Visible)
                            {
                                cell.Visible = &lt;span class=kwd&gt;false&lt;/span&gt;;
                            }

                            &lt;span class=kwd&gt;if&lt;/span&gt; ((field.ItemStyle != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (!String.IsNullOrEmpty(field.ItemStyle.CssClass)))
                            {
                                &lt;span class=kwd&gt;if&lt;/span&gt; (!String.IsNullOrEmpty(cell.CssClass))
                                {
                                    cell.CssClass += &lt;span class=st&gt;" "&lt;/span&gt;;
                                }
                                cell.CssClass += field.ItemStyle.CssClass;
                            }
                        }
                        
                        writer.WriteLine();
                        cell.RenderControl(writer);
                    }

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag(&lt;span class=st&gt;"tr"&lt;/span&gt;);
                }
                
                writer.Indent--;
                writer.WriteLine();
                writer.WriteEndTag(tableSection);
            }
        }

        &lt;span class=kwd&gt;private string&lt;/span&gt; GetRowClass(GridView gridView, GridViewRow row)
        {
            &lt;span class=kwd&gt;string&lt;/span&gt; className = &lt;span class=st&gt;""&lt;/span&gt;;

            &lt;span class=kwd&gt;if&lt;/span&gt; ((row.RowState &amp;amp; DataControlRowState.Alternate) == DataControlRowState.Alternate)
            {
                className += &lt;span class=st&gt;" AspNet-GridView-Alternate "&lt;/span&gt;;
                &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.AlternatingRowStyle != &lt;span class=kwd&gt;null&lt;/span&gt;)
                {
                    className += gridView.AlternatingRowStyle.CssClass;
                }
            }

            &lt;span class=kwd&gt;if&lt;/span&gt; ((row.RowState &amp;amp; DataControlRowState.Edit) == DataControlRowState.Edit)
            {
                className += &lt;span class=st&gt;" AspNet-GridView-Edit "&lt;/span&gt;;
                &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.EditRowStyle != &lt;span class=kwd&gt;null&lt;/span&gt;)
                {
                    className += gridView.EditRowStyle.CssClass;
                }
            }

            &lt;span class=kwd&gt;if&lt;/span&gt; ((row.RowState &amp;amp; DataControlRowState.Insert) == DataControlRowState.Insert)
            {
                className += &lt;span class=st&gt;" AspNet-GridView-Insert "&lt;/span&gt;;
            }

            &lt;span class=kwd&gt;if&lt;/span&gt; ((row.RowState &amp;amp; DataControlRowState.Selected) == DataControlRowState.Selected)
            {
                className += &lt;span class=st&gt;" AspNet-GridView-Selected "&lt;/span&gt;;
                &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.SelectedRowStyle != &lt;span class=kwd&gt;null&lt;/span&gt;)
                {
                    className += gridView.SelectedRowStyle.CssClass;
                }
            }

            &lt;span class=kwd&gt;return&lt;/span&gt; className.Trim();
        }

        &lt;span class=kwd&gt;private void&lt;/span&gt; WritePagerSection(HtmlTextWriter writer, PagerPosition pos)
        {
            GridView gridView = Control &lt;span class=kwd&gt;as&lt;/span&gt; GridView;
            &lt;span class=kwd&gt;if&lt;/span&gt; ((gridView != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp;
                gridView.AllowPaging &amp;amp;&amp;amp;
                ((gridView.PagerSettings.Position == pos) || (gridView.PagerSettings.Position == PagerPosition.TopAndBottom)))
            {
                Table innerTable = &lt;span class=kwd&gt;null&lt;/span&gt;;
                &lt;span class=kwd&gt;if&lt;/span&gt; ((pos == PagerPosition.Top) &amp;amp;&amp;amp;
                    (gridView.TopPagerRow != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp;
                    (gridView.TopPagerRow.Cells.Count == 1) &amp;amp;&amp;amp;
                    (gridView.TopPagerRow.Cells[0].Controls.Count == 1) &amp;amp;&amp;amp;
                    &lt;span class=kwd&gt;typeof&lt;/span&gt;(Table).IsAssignableFrom(gridView.TopPagerRow.Cells[0].Controls[0].GetType()))
                {
                    innerTable = gridView.TopPagerRow.Cells[0].Controls[0] &lt;span class=kwd&gt;as&lt;/span&gt; Table;
                }
                &lt;span class=kwd&gt;else if&lt;/span&gt; ((pos == PagerPosition.Bottom) &amp;amp;&amp;amp;
                    (gridView.BottomPagerRow != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp;
                    (gridView.BottomPagerRow.Cells.Count == 1) &amp;amp;&amp;amp;
                    (gridView.BottomPagerRow.Cells[0].Controls.Count == 1) &amp;amp;&amp;amp;
                    &lt;span class=kwd&gt;typeof&lt;/span&gt;(Table).IsAssignableFrom(gridView.BottomPagerRow.Cells[0].Controls[0].GetType()))
                {
                    innerTable = gridView.BottomPagerRow.Cells[0].Controls[0] &lt;span class=kwd&gt;as&lt;/span&gt; Table;
                }

                &lt;span class=kwd&gt;if&lt;/span&gt; ((innerTable != &lt;span class=kwd&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; (innerTable.Rows.Count == 1))
                {
                    &lt;span class=kwd&gt;string&lt;/span&gt; className = &lt;span class=st&gt;"AspNet-GridView-Pagination AspNet-GridView-"&lt;/span&gt;;
                    className += (pos == PagerPosition.Top) ? &lt;span class=st&gt;"Top "&lt;/span&gt; : &lt;span class=st&gt;"Bottom "&lt;/span&gt;;
                    &lt;span class=kwd&gt;if&lt;/span&gt; (gridView.PagerStyle != &lt;span class=kwd&gt;null&lt;/span&gt;)
                    {
                        className += gridView.PagerStyle.CssClass;
                    }
                    className = className.Trim();

                    writer.WriteLine();
                    writer.WriteBeginTag(&lt;span class=st&gt;"div"&lt;/span&gt;);
                    writer.WriteAttribute(&lt;span class=st&gt;"class"&lt;/span&gt;, className);
                    writer.Write(HtmlTextWriter.TagRightChar);
                    writer.Indent++;

                    TableRow row = innerTable.Rows[0];
                    &lt;span class=kwd&gt;foreach&lt;/span&gt; (TableCell cell &lt;span class=kwd&gt;in&lt;/span&gt; row.Cells)
                    {
                        &lt;span class=kwd&gt;foreach&lt;/span&gt; (Control ctrl &lt;span class=kwd&gt;in&lt;/span&gt; cell.Controls)
                        {
                            writer.WriteLine();
                            ctrl.RenderControl(writer);
                        }
                    }

                    writer.Indent--;
                    writer.WriteLine();
                    writer.WriteEndTag(&lt;span class=st&gt;"div"&lt;/span&gt;);
                }
            }
        }
    }
}
&lt;/pre&gt;&amp;nbsp; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description></item><item><title>A couple of suggestions</title><link>http://forums.asp.net/thread/1448954.aspx</link><pubDate>Wed, 01 Nov 2006 04:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1448954</guid><dc:creator>thinkdrastic</dc:creator><description>I&amp;#39;ve only just come across this project. As a bit of a HTML purist who&amp;#39;s been fighting against .net&amp;#39;s standard controls for a while, this is fantastic to see :)
&lt;p&gt;Anyway, I&amp;#39;ve been looking through the examples and I&amp;#39;ve got a couple of suggestions for you:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In the Tree View example, you&amp;#39;ve got code like &amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;img&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;src&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;images/checkers.gif&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;alt&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;Business Solutions&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;Business Solutions&amp;quot;. A screen reader is going to read that aloud as &amp;quot;Business Solutions Business Solutions&amp;quot;. It&amp;#39;d be better to have a blank alt here (alt=&amp;quot;&amp;quot;), or better, use a background image instead.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Secondly, you&amp;#39;ve used a lot of &lt;span style="color:#ff0000;"&gt;href&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;javascript:__doPostBack &lt;/span&gt;URIs. It&amp;#39;d be nice if these worked as a progressive enhancement, so non-javascript users got a fully-expanded menu with standard http:// URIs.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;The Menu Control doesn&amp;#39;t appear to be keyboard navigable - this is a fairly major accessibility gotcha. As an example of one that works with the keyboard, &lt;a href="http://onlinetools.org/tools/yadm/dropdown.html" title="YADM"&gt;http://onlinetools.org/tools/yadm/dropdown.html&lt;/a&gt; lets you hit return to open up drop-downs.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;The only other one is the use of more semantic HTML. For the login form for instance, something like this might be better:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;fieldset&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;legend&amp;gt;&lt;span&gt;Login&lt;/span&gt;&amp;lt;/legend&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&lt;span style="color:#0000ff;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;for&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00_ctl00_MainContent_LiveExample_loginview1_login1_UserName&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;em&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;U&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;em&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;ser Name:&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;text&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00_ctl00_MainContent_LiveExample_loginview1_login1_UserName&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00$ctl00$MainContent$LiveExample$loginview1$login1$UserName&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;accesskey&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;u&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&lt;br /&gt;
&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;label&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;for&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00_ctl00_MainContent_LiveExample_loginview1_login1_Password&amp;quot;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;em&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;P&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;em&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;assword:&lt;span style="color:#0000ff;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#800000;"&gt;label&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#800000;"&gt;input&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;type&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;password&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;id&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00_ctl00_MainContent_LiveExample_loginview1_login1_Password&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;name&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;ctl00$ctl00$MainContent$LiveExample$loginview1$login1$Password&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;value&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span style="color:#ff0000;"&gt;accesskey&lt;/span&gt;=&lt;span style="color:#0000ff;"&gt;&amp;quot;p&amp;quot;&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&lt;br /&gt;
&lt;span style="color:#0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [and so on...]&lt;/span&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/fieldset&amp;gt;&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;One more thing (and feel free to kick this one to the kerb): It&amp;#39;d be nice if you could use the hCard microformat on the DetailsView, FormView and DataList examples.&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;Hope these are useful :)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Olly.&amp;nbsp;&lt;/p&gt;</description></item><item><title>Selected | Alternate Row deon't work: fix</title><link>http://forums.asp.net/thread/1427882.aspx</link><pubDate>Fri, 13 Oct 2006 04:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1427882</guid><dc:creator>psi_u</dc:creator><description>&lt;p&gt;The symptoms:&lt;/p&gt;&lt;p&gt;&amp;nbsp;I want the background of the selected rows to be yellow.&lt;/p&gt;&lt;p&gt;It works only on the selected rows, that aren&amp;#39;t an alternate rows.&lt;/p&gt;&lt;p&gt;The problem:&lt;/p&gt;&lt;p&gt;the method &amp;quot;&lt;font size="2"&gt;GetRowClass&amp;quot;, which determines the ClassName for the appropriate&amp;nbsp;RowState, using all the options of the enumeration of &lt;font size="2"&gt;DataControlRowState (except normal).&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;p&gt;However, there is another option: &amp;quot;Selected | Alternate&amp;quot;. Since its nor Selected neither Alternate, The Switch doesn&amp;#39;t get them in either CASE. Therefore it returns the ClassName as NULL (or: &amp;quot;&amp;quot;).&lt;/p&gt;&lt;p&gt;The solution:&lt;/p&gt;&lt;p&gt;One simple way, that demonstrate the problem and the solution is by adding these lines after the last Case. That should resolve the problem:&lt;/p&gt;&lt;pre class="coloredcode"&gt;&lt;span class="kwd"&gt;	case&lt;/span&gt; DataControlRowState.Normal:
                    &lt;span class="kwd"&gt;break&lt;/span&gt;;
                &lt;span class="kwd"&gt;default&lt;/span&gt;:
                    className += &lt;span class="st"&gt;&amp;quot; AspNet-GridView-Selected &amp;quot;&lt;/span&gt;;
                    className += gridView.SelectedRowStyle.CssClass;
                    &lt;span class="kwd"&gt;break&lt;/span&gt;;&lt;/pre&gt;&lt;p&gt;&amp;nbsp;Hope this helps.&lt;/p&gt;</description></item><item><title>GridViewAdapter and Visible flag</title><link>http://forums.asp.net/thread/1398761.aspx</link><pubDate>Thu, 14 Sep 2006 04:00:00 GMT</pubDate><guid isPermaLink="false">4c671506-2930-414c-a40b-8bf57ded5924:1398761</guid><dc:creator>carpenocturnum</dc:creator><description>&lt;p&gt;Hi all, I am trying to use the GridViewAdapter, but it appears as though there is a similar problem to the DetailViewAdapter as explained by this post &lt;a href="http://forums.asp.net/thread/1336007.aspx"&gt;http://forums.asp.net/thread/1336007.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;My issues is that I have&amp;nbsp;set the visible attribute on one of my&amp;nbsp;Databound columns to be false. When I apply the adapter, the column is displayed, the header is written, but the cells just contain no data. Can someone please confirm that this is in fact a bug, and if/when it might be fixed.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks.&lt;/p&gt;</description></item></channel></rss>