<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>ASP.NET Real World Controls</title><link>http://aspnetrealworldcontr.codeplex.com/project/feeds/rss</link><description>Real World implementations of custom controls for ASP.NET.   </description><item><title>Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606]</title><link>http://aspnetrealworldcontr.codeplex.com/workitem/10606</link><description>&amp;#60;p&amp;#62;Using the FrozenGridView control, the header scrolls along with the rest of the grid in IE8.  When you run in Compatibility mode, the control works as expected.&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&lt;br /&gt;Comments: ** Comment from web user: MohitKumaPaliwal ** &lt;p&gt;Hi ,&lt;br&gt;I have seen the control behavior header is not fixed in IE8. To fix this issue please add following code in the FrozenGridView.cs file build the control library. Header would be fixed.&lt;/p&gt;&lt;p&gt;protected override void OnRowDataBound(GridViewRowEventArgs e)&lt;br&gt;        {&lt;br&gt;            if (e.Row.RowType == DataControlRowType.Header)&lt;br&gt;            {&lt;br&gt;                HttpContext.Current.Response.Write(&amp;quot;&amp;lt;Div&amp;gt;&amp;quot;);&lt;br&gt;                base.OnRowDataBound(e);&lt;br&gt;                HttpContext.Current.Response.Write(&amp;quot;&amp;lt;/Div&amp;gt;&amp;quot;);&lt;br&gt;            }&lt;br&gt;            else&lt;br&gt;            {&lt;br&gt;                base.OnRowDataBound(e);&lt;br&gt;            }&lt;br&gt;        } &lt;/p&gt;&lt;p&gt;Thanks&lt;br&gt;Mohit Kumar Paliwal&lt;/p&gt;</description><author>MohitKumaPaliwal</author><pubDate>Wed, 10 Oct 2012 12:41:06 GMT</pubDate><guid isPermaLink="false">Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606] 20121010124106P</guid></item><item><title>Source code checked in, #94877</title><link>http://aspnetrealworldcontr.codeplex.com/SourceControl/changeset/changes/94877</link><description>Upgrade&amp;#58; New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link&amp;#58; http&amp;#58;&amp;#47;&amp;#47;go.microsoft.com&amp;#47;fwlink&amp;#47;&amp;#63;LinkId&amp;#61;254563</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 22:38:35 GMT</pubDate><guid isPermaLink="false">Source code checked in, #94877 20121001103835P</guid></item><item><title>Source code checked in, #94876</title><link>http://aspnetrealworldcontr.codeplex.com/SourceControl/changeset/changes/94876</link><description>Checked in by server upgrade</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 22:31:06 GMT</pubDate><guid isPermaLink="false">Source code checked in, #94876 20121001103106P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Resolved...&lt;/p&gt;
&lt;p&gt;I figured out how to do the shifting using Javascript on the client side instead and now I am able to shift the cells left without effecting the rest of the changes.&lt;/p&gt;&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Tue, 26 Jun 2012 20:41:37 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120626084137P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Resolved...&lt;/p&gt;
&lt;p&gt;I figured out how to do the shifting using Javascript on the client side instead and now I am able to shift the cells left without effecting the rest of the changes.&lt;/p&gt;&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Tue, 26 Jun 2012 20:41:37 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120626084137P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Resolved...&lt;/p&gt;
&lt;p&gt;I figured out how to do the shifting using Javascript on the client side instead and now I am able to shift the cells left without effecting the rest of the changes.&lt;/p&gt;&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Tue, 26 Jun 2012 20:41:37 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120626084137P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Resolved...&lt;/p&gt;
&lt;p&gt;I figured out how to do the shifting using Javascript on the client side instead and now I am able to shift the cells left without effecting the rest of the changes.&lt;/p&gt;&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Tue, 26 Jun 2012 20:41:37 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120626084137P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I have everything working as it should except I went a little further and added a button to each row which allows me to delete the contents of the textbox&amp;nbsp;of the first column and shift the contents of each texbox in that row to the left by one column.&amp;nbsp;
 When I do this, I then update the last textbox with a new value and hit the Save button.&amp;nbsp; However, when I hit the save button, that row gets saved fine but&amp;nbsp;everything else&amp;nbsp;I changed throughout the rest of the gridview does not save.&amp;nbsp; I
 have tried a Javascript which would call the Save button first before shifting the cells, but that doesn't seem to work either.&amp;nbsp; Does anyone have any idea how I can save the contents of the gridview first before shifting the contents to the left for a
 particular row?&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;ASPX&lt;/span&gt;&lt;/p&gt;
&lt;div style="background-color:white; color:black"&gt;
&lt;pre&gt;&amp;lt;script type=&lt;span style="color:#a31515"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt; 
        function ClickButton() 
        { 
            document.getElementById(&lt;span style="color:#a31515"&gt;'SaveButton'&lt;/span&gt;).click(); 
        } 
&amp;lt;/script&amp;gt; 
 
&amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Update&amp;quot;&lt;/span&gt; /&amp;gt; 
        &amp;lt;Grids:BulkEditGridView ID=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; AllowSorting=&lt;span style="color:#a31515"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; 
            DataKeyNames=&lt;span style="color:#a31515"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; DataSourceID=&lt;span style="color:#a31515"&gt;&amp;quot;ScoresDataSource&amp;quot;&lt;/span&gt; OnRowDataBound=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowDataBound&amp;quot;&lt;/span&gt; 
            SaveButtonID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; OnRowCommand=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowCommand&amp;quot;&lt;/span&gt;&amp;gt; 
            &amp;lt;Columns&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Action&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;ShiftScore&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Drop Oldest Round&amp;quot;&lt;/span&gt; OnClientClick=&lt;span style="color:#a31515"&gt;&amp;quot;ClickButton()&amp;quot;&lt;/span&gt; 
                            CommandName=&lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt; CommandArgument=&lt;span style="color:#a31515"&gt;&amp;quot;&amp;lt;%# ((GridViewRow) Container).RowIndex %&amp;gt;&amp;quot;&lt;/span&gt; 
                            Enabled=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Score5&amp;quot;).ToString() != &amp;quot;0&amp;quot; %&amp;gt;'&lt;/span&gt; /&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField Visible=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;IdTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Id&amp;quot;) %&amp;gt;'&lt;/span&gt; ReadOnly=&lt;span style="color:#a31515"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt; &amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;) %&amp;gt;, 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.FirstName&amp;quot;&lt;/span&gt;) %&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Current Member&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.CurrentMember&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblCurrentMember&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Member.CurrentMember&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Best Score&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;BestScore&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;BestScoreTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;BestScore&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 1&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score1&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score1&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 2&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score2&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score2&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 3&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score3&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score3&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 4&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score4&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score4&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 5&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score5&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score5&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Handicap&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblHandicap&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
            &amp;lt;/Columns&amp;gt; 
        &amp;lt;/Grids:BulkEditGridView&amp;gt;
&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration:underline"&gt;Code Behind&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;div style="background-color:white; color:black"&gt;&lt;pre&gt;&lt;span style="color:blue"&gt;public &lt;/span&gt;&lt;span style="color:blue"&gt;partial&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; Management_ScoresAdmin : System.Web.UI.Page 
{ 
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (!IsPostBack) 
        { 
            EditableGrid.Sort(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
        } 
    } 
 
     
    &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; BulkEditGridView : System.Web.UI.WebControls.GridView 
    { 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; GridViewRow CreateRow(&lt;span style="color:blue"&gt;int&lt;/span&gt; rowIndex, &lt;span style="color:blue"&gt;int&lt;/span&gt; dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState) 
        { 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;base&lt;/span&gt;.CreateRow(rowIndex, dataSourceIndex, rowType, rowState | DataControlRowState.Edit); 
        } 
 
        [IDReferenceProperty(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(Control))] 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; SaveButtonID 
        { 
            &lt;span style="color:blue"&gt;get&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;string&lt;/span&gt; val = (&lt;span style="color:blue"&gt;string&lt;/span&gt;)&lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;]; 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (val == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                { 
                    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;.Empty; 
                } 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; val; 
            } 
            &lt;span style="color:blue"&gt;set&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;] = value; 
            } 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; OnLoad(EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.OnLoad(e); 
 
            &lt;span style="color:green"&gt;//Attach an event handler to the save button. &lt;/span&gt;
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;false&lt;/span&gt; == &lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID)) 
            { 
                Control btn = RecursiveFindControl(&lt;span style="color:blue"&gt;this&lt;/span&gt;.NamingContainer, &lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID); 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != btn) 
                { 
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; Button) 
                    { 
                        ((Button)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; LinkButton) 
                    { 
                        ((LinkButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; ImageButton) 
                    { 
                        ((ImageButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; ImageClickEventHandler(SaveClicked); 
                    } 
 
                    &lt;span style="color:green"&gt;//add more button types here. &lt;/span&gt;
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; Control RecursiveFindControl(Control namingcontainer, &lt;span style="color:blue"&gt;string&lt;/span&gt; controlName) 
        { 
            Control c = namingcontainer.FindControl(controlName); 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (c != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; c; 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (namingcontainer.NamingContainer != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; RecursiveFindControl(namingcontainer.NamingContainer, controlName); 
 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; SaveClicked(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Save(); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.DataBind(); 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; InitializeRow(GridViewRow row, DataControlField[] fields) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.InitializeRow(row, fields); 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (DataControlFieldCell cell &lt;span style="color:blue"&gt;in&lt;/span&gt; row.Cells) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (cell.Controls.Count &amp;gt; 0) 
                { 
                    AddChangedHandlers(cell.Controls); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; AddChangedHandlers(ControlCollection controls) 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Control ctrl &lt;span style="color:blue"&gt;in&lt;/span&gt; controls) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; TextBox) 
                { 
                    ((TextBox)ctrl).TextChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; CheckBox) 
                { 
                    ((CheckBox)ctrl).CheckedChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; DropDownList) 
                { 
                    ((DropDownList)ctrl).SelectedIndexChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;void&lt;/span&gt; HandleRowChanged(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs args) 
        { 
            GridViewRow row = ((Control)sender).NamingContainer &lt;span style="color:blue"&gt;as&lt;/span&gt; GridViewRow; 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != row &amp;amp;&amp;amp; !dirtyRows.Contains(row.RowIndex)) 
            { 
                dirtyRows.Add(row.RowIndex); 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt; dirtyRows = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt;(); 
 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Save() 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;int&lt;/span&gt; row &lt;span style="color:blue"&gt;in&lt;/span&gt; dirtyRows) 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.UpdateRow(row, &lt;span style="color:blue"&gt;false&lt;/span&gt;); 
            } 
 
            dirtyRows.Clear(); 
        } 
    } 
 
    &lt;span style="color:green"&gt;// Control the Shift Button in the Scores GridView &lt;/span&gt;
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; EditableGrid_RowCommand(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, GridViewCommandEventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (e.CommandName == &lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt;) 
        { 
            &lt;span style="color:green"&gt;// Retrieve the row index stored in the  &lt;/span&gt;
            &lt;span style="color:green"&gt;// CommandArgument property. &lt;/span&gt;
            &lt;span style="color:blue"&gt;int&lt;/span&gt; index = Convert.ToInt32(e.CommandArgument); 
 
            &lt;span style="color:green"&gt;// Retrieve the row that contains the button  &lt;/span&gt;
            &lt;span style="color:green"&gt;// from the Rows collection. &lt;/span&gt;
            GridViewRow row = EditableGrid.Rows[index]; 
 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s2 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s3 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s4 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s5 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;)).Text; 
 
            TextBox newScore1 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore2 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore3 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore4 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore5 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
 
            newScore1.Text = s2; 
            newScore2.Text = s3; 
            newScore3.Text = s4; 
            newScore4.Text = s5; 
            newScore5.Text = &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
 
            &lt;span style="color:green"&gt;// Sets focus on the Round 5 textbox &lt;/span&gt;
            Control c = &lt;span style="color:blue"&gt;new&lt;/span&gt; Control(); 
            c = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.SetFocus(c); 
        } 
    } 
 }
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="background-color:white; color:black"&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Mon, 25 Jun 2012 16:26:47 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120625042647P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I have everything working as it should except I went a little further and added a button to each row which allows me to delete the contents of the textbox&amp;nbsp;of the first column and shift the contents of each texbox in that row to the left by one column.&amp;nbsp;
 When I do this, I then update the last textbox with a new value and hit the Save button.&amp;nbsp; However, when I hit the save button, that row gets saved fine but&amp;nbsp;everything else&amp;nbsp;I changed throughout the rest of the gridview does not save.&amp;nbsp; I
 have tried a Javascript which would call the Save button first before shifting the cells, but that doesn't seem to work either.&amp;nbsp; Does anyone have any idea how I can save the contents of the gridview first before shifting the contents to the left for a
 particular row?&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;ASPX&lt;/span&gt;&lt;/p&gt;
&lt;div style="background-color:white; color:black"&gt;
&lt;pre&gt;&amp;lt;script type=&lt;span style="color:#a31515"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt; 
        function ClickButton() 
        { 
            document.getElementById(&lt;span style="color:#a31515"&gt;'SaveButton'&lt;/span&gt;).click(); 
        } 
&amp;lt;/script&amp;gt; 
 
&amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Update&amp;quot;&lt;/span&gt; /&amp;gt; 
        &amp;lt;Grids:BulkEditGridView ID=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; AllowSorting=&lt;span style="color:#a31515"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; 
            DataKeyNames=&lt;span style="color:#a31515"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; DataSourceID=&lt;span style="color:#a31515"&gt;&amp;quot;ScoresDataSource&amp;quot;&lt;/span&gt; OnRowDataBound=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowDataBound&amp;quot;&lt;/span&gt; 
            SaveButtonID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; OnRowCommand=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowCommand&amp;quot;&lt;/span&gt;&amp;gt; 
            &amp;lt;Columns&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Action&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;ShiftScore&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Drop Oldest Round&amp;quot;&lt;/span&gt; OnClientClick=&lt;span style="color:#a31515"&gt;&amp;quot;ClickButton()&amp;quot;&lt;/span&gt; 
                            CommandName=&lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt; CommandArgument=&lt;span style="color:#a31515"&gt;&amp;quot;&amp;lt;%# ((GridViewRow) Container).RowIndex %&amp;gt;&amp;quot;&lt;/span&gt; 
                            Enabled=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Score5&amp;quot;).ToString() != &amp;quot;0&amp;quot; %&amp;gt;'&lt;/span&gt; /&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField Visible=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;IdTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Id&amp;quot;) %&amp;gt;'&lt;/span&gt; ReadOnly=&lt;span style="color:#a31515"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt; &amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;) %&amp;gt;, 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.FirstName&amp;quot;&lt;/span&gt;) %&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Current Member&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.CurrentMember&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblCurrentMember&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Member.CurrentMember&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Best Score&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;BestScore&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;BestScoreTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;BestScore&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 1&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score1&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score1&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 2&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score2&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score2&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 3&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score3&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score3&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 4&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score4&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score4&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 5&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score5&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score5&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Handicap&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblHandicap&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
            &amp;lt;/Columns&amp;gt; 
        &amp;lt;/Grids:BulkEditGridView&amp;gt;
&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration:underline"&gt;Code Behind&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;div style="background-color:white; color:black"&gt;&lt;pre&gt;&lt;span style="color:blue"&gt;public &lt;/span&gt;&lt;span style="color:blue"&gt;partial&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; Management_ScoresAdmin : System.Web.UI.Page 
{ 
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (!IsPostBack) 
        { 
            EditableGrid.Sort(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
        } 
    } 
 
     
    &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; BulkEditGridView : System.Web.UI.WebControls.GridView 
    { 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; GridViewRow CreateRow(&lt;span style="color:blue"&gt;int&lt;/span&gt; rowIndex, &lt;span style="color:blue"&gt;int&lt;/span&gt; dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState) 
        { 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;base&lt;/span&gt;.CreateRow(rowIndex, dataSourceIndex, rowType, rowState | DataControlRowState.Edit); 
        } 
 
        [IDReferenceProperty(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(Control))] 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; SaveButtonID 
        { 
            &lt;span style="color:blue"&gt;get&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;string&lt;/span&gt; val = (&lt;span style="color:blue"&gt;string&lt;/span&gt;)&lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;]; 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (val == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                { 
                    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;.Empty; 
                } 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; val; 
            } 
            &lt;span style="color:blue"&gt;set&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;] = value; 
            } 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; OnLoad(EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.OnLoad(e); 
 
            &lt;span style="color:green"&gt;//Attach an event handler to the save button. &lt;/span&gt;
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;false&lt;/span&gt; == &lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID)) 
            { 
                Control btn = RecursiveFindControl(&lt;span style="color:blue"&gt;this&lt;/span&gt;.NamingContainer, &lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID); 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != btn) 
                { 
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; Button) 
                    { 
                        ((Button)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; LinkButton) 
                    { 
                        ((LinkButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; ImageButton) 
                    { 
                        ((ImageButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; ImageClickEventHandler(SaveClicked); 
                    } 
 
                    &lt;span style="color:green"&gt;//add more button types here. &lt;/span&gt;
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; Control RecursiveFindControl(Control namingcontainer, &lt;span style="color:blue"&gt;string&lt;/span&gt; controlName) 
        { 
            Control c = namingcontainer.FindControl(controlName); 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (c != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; c; 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (namingcontainer.NamingContainer != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; RecursiveFindControl(namingcontainer.NamingContainer, controlName); 
 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; SaveClicked(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Save(); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.DataBind(); 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; InitializeRow(GridViewRow row, DataControlField[] fields) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.InitializeRow(row, fields); 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (DataControlFieldCell cell &lt;span style="color:blue"&gt;in&lt;/span&gt; row.Cells) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (cell.Controls.Count &amp;gt; 0) 
                { 
                    AddChangedHandlers(cell.Controls); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; AddChangedHandlers(ControlCollection controls) 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Control ctrl &lt;span style="color:blue"&gt;in&lt;/span&gt; controls) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; TextBox) 
                { 
                    ((TextBox)ctrl).TextChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; CheckBox) 
                { 
                    ((CheckBox)ctrl).CheckedChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; DropDownList) 
                { 
                    ((DropDownList)ctrl).SelectedIndexChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;void&lt;/span&gt; HandleRowChanged(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs args) 
        { 
            GridViewRow row = ((Control)sender).NamingContainer &lt;span style="color:blue"&gt;as&lt;/span&gt; GridViewRow; 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != row &amp;amp;&amp;amp; !dirtyRows.Contains(row.RowIndex)) 
            { 
                dirtyRows.Add(row.RowIndex); 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt; dirtyRows = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt;(); 
 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Save() 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;int&lt;/span&gt; row &lt;span style="color:blue"&gt;in&lt;/span&gt; dirtyRows) 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.UpdateRow(row, &lt;span style="color:blue"&gt;false&lt;/span&gt;); 
            } 
 
            dirtyRows.Clear(); 
        } 
    } 
 
    &lt;span style="color:green"&gt;// Control the Shift Button in the Scores GridView &lt;/span&gt;
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; EditableGrid_RowCommand(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, GridViewCommandEventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (e.CommandName == &lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt;) 
        { 
            &lt;span style="color:green"&gt;// Retrieve the row index stored in the  &lt;/span&gt;
            &lt;span style="color:green"&gt;// CommandArgument property. &lt;/span&gt;
            &lt;span style="color:blue"&gt;int&lt;/span&gt; index = Convert.ToInt32(e.CommandArgument); 
 
            &lt;span style="color:green"&gt;// Retrieve the row that contains the button  &lt;/span&gt;
            &lt;span style="color:green"&gt;// from the Rows collection. &lt;/span&gt;
            GridViewRow row = EditableGrid.Rows[index]; 
 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s2 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s3 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s4 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s5 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;)).Text; 
 
            TextBox newScore1 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore2 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore3 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore4 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore5 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
 
            newScore1.Text = s2; 
            newScore2.Text = s3; 
            newScore3.Text = s4; 
            newScore4.Text = s5; 
            newScore5.Text = &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
 
            &lt;span style="color:green"&gt;// Sets focus on the Round 5 textbox &lt;/span&gt;
            Control c = &lt;span style="color:blue"&gt;new&lt;/span&gt; Control(); 
            c = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.SetFocus(c); 
        } 
    } 
 }
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="background-color:white; color:black"&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Mon, 25 Jun 2012 16:26:47 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120625042647P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I have everything working as it should except I went a little further and added a button to each row which allows me to delete the contents of the textbox&amp;nbsp;of the first column and shift the contents of each texbox in that row to the left by one column.&amp;nbsp;
 When I do this, I then update the last textbox with a new value and hit the Save button.&amp;nbsp; However, when I hit the save button, that row gets saved fine but&amp;nbsp;everything else&amp;nbsp;I changed throughout the rest of the gridview does not save.&amp;nbsp; I
 have tried a Javascript which would call the Save button first before shifting the cells, but that doesn't seem to work either.&amp;nbsp; Does anyone have any idea how I can save the contents of the gridview first before shifting the contents to the left for a
 particular row?&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;ASPX&lt;/span&gt;&lt;/p&gt;
&lt;div style="background-color:white; color:black"&gt;
&lt;pre&gt;&amp;lt;script type=&lt;span style="color:#a31515"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt; 
        function ClickButton() 
        { 
            document.getElementById(&lt;span style="color:#a31515"&gt;'SaveButton'&lt;/span&gt;).click(); 
        } 
&amp;lt;/script&amp;gt; 
 
&amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Update&amp;quot;&lt;/span&gt; /&amp;gt; 
        &amp;lt;Grids:BulkEditGridView ID=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; AllowSorting=&lt;span style="color:#a31515"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; 
            DataKeyNames=&lt;span style="color:#a31515"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; DataSourceID=&lt;span style="color:#a31515"&gt;&amp;quot;ScoresDataSource&amp;quot;&lt;/span&gt; OnRowDataBound=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowDataBound&amp;quot;&lt;/span&gt; 
            SaveButtonID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; OnRowCommand=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowCommand&amp;quot;&lt;/span&gt;&amp;gt; 
            &amp;lt;Columns&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Action&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;ShiftScore&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Drop Oldest Round&amp;quot;&lt;/span&gt; OnClientClick=&lt;span style="color:#a31515"&gt;&amp;quot;ClickButton()&amp;quot;&lt;/span&gt; 
                            CommandName=&lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt; CommandArgument=&lt;span style="color:#a31515"&gt;&amp;quot;&amp;lt;%# ((GridViewRow) Container).RowIndex %&amp;gt;&amp;quot;&lt;/span&gt; 
                            Enabled=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Score5&amp;quot;).ToString() != &amp;quot;0&amp;quot; %&amp;gt;'&lt;/span&gt; /&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField Visible=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;IdTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Id&amp;quot;) %&amp;gt;'&lt;/span&gt; ReadOnly=&lt;span style="color:#a31515"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt; &amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;) %&amp;gt;, 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.FirstName&amp;quot;&lt;/span&gt;) %&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Current Member&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.CurrentMember&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblCurrentMember&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Member.CurrentMember&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Best Score&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;BestScore&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;BestScoreTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;BestScore&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 1&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score1&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score1&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 2&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score2&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score2&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 3&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score3&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score3&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 4&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score4&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score4&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 5&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score5&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score5&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Handicap&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblHandicap&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
            &amp;lt;/Columns&amp;gt; 
        &amp;lt;/Grids:BulkEditGridView&amp;gt;
&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration:underline"&gt;Code Behind&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;div style="background-color:white; color:black"&gt;&lt;pre&gt;&lt;span style="color:blue"&gt;public &lt;/span&gt;&lt;span style="color:blue"&gt;partial&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; Management_ScoresAdmin : System.Web.UI.Page 
{ 
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (!IsPostBack) 
        { 
            EditableGrid.Sort(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
        } 
    } 
 
     
    &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; BulkEditGridView : System.Web.UI.WebControls.GridView 
    { 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; GridViewRow CreateRow(&lt;span style="color:blue"&gt;int&lt;/span&gt; rowIndex, &lt;span style="color:blue"&gt;int&lt;/span&gt; dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState) 
        { 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;base&lt;/span&gt;.CreateRow(rowIndex, dataSourceIndex, rowType, rowState | DataControlRowState.Edit); 
        } 
 
        [IDReferenceProperty(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(Control))] 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; SaveButtonID 
        { 
            &lt;span style="color:blue"&gt;get&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;string&lt;/span&gt; val = (&lt;span style="color:blue"&gt;string&lt;/span&gt;)&lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;]; 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (val == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                { 
                    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;.Empty; 
                } 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; val; 
            } 
            &lt;span style="color:blue"&gt;set&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;] = value; 
            } 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; OnLoad(EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.OnLoad(e); 
 
            &lt;span style="color:green"&gt;//Attach an event handler to the save button. &lt;/span&gt;
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;false&lt;/span&gt; == &lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID)) 
            { 
                Control btn = RecursiveFindControl(&lt;span style="color:blue"&gt;this&lt;/span&gt;.NamingContainer, &lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID); 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != btn) 
                { 
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; Button) 
                    { 
                        ((Button)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; LinkButton) 
                    { 
                        ((LinkButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; ImageButton) 
                    { 
                        ((ImageButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; ImageClickEventHandler(SaveClicked); 
                    } 
 
                    &lt;span style="color:green"&gt;//add more button types here. &lt;/span&gt;
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; Control RecursiveFindControl(Control namingcontainer, &lt;span style="color:blue"&gt;string&lt;/span&gt; controlName) 
        { 
            Control c = namingcontainer.FindControl(controlName); 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (c != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; c; 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (namingcontainer.NamingContainer != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; RecursiveFindControl(namingcontainer.NamingContainer, controlName); 
 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; SaveClicked(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Save(); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.DataBind(); 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; InitializeRow(GridViewRow row, DataControlField[] fields) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.InitializeRow(row, fields); 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (DataControlFieldCell cell &lt;span style="color:blue"&gt;in&lt;/span&gt; row.Cells) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (cell.Controls.Count &amp;gt; 0) 
                { 
                    AddChangedHandlers(cell.Controls); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; AddChangedHandlers(ControlCollection controls) 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Control ctrl &lt;span style="color:blue"&gt;in&lt;/span&gt; controls) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; TextBox) 
                { 
                    ((TextBox)ctrl).TextChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; CheckBox) 
                { 
                    ((CheckBox)ctrl).CheckedChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; DropDownList) 
                { 
                    ((DropDownList)ctrl).SelectedIndexChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;void&lt;/span&gt; HandleRowChanged(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs args) 
        { 
            GridViewRow row = ((Control)sender).NamingContainer &lt;span style="color:blue"&gt;as&lt;/span&gt; GridViewRow; 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != row &amp;amp;&amp;amp; !dirtyRows.Contains(row.RowIndex)) 
            { 
                dirtyRows.Add(row.RowIndex); 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt; dirtyRows = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt;(); 
 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Save() 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;int&lt;/span&gt; row &lt;span style="color:blue"&gt;in&lt;/span&gt; dirtyRows) 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.UpdateRow(row, &lt;span style="color:blue"&gt;false&lt;/span&gt;); 
            } 
 
            dirtyRows.Clear(); 
        } 
    } 
 
    &lt;span style="color:green"&gt;// Control the Shift Button in the Scores GridView &lt;/span&gt;
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; EditableGrid_RowCommand(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, GridViewCommandEventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (e.CommandName == &lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt;) 
        { 
            &lt;span style="color:green"&gt;// Retrieve the row index stored in the  &lt;/span&gt;
            &lt;span style="color:green"&gt;// CommandArgument property. &lt;/span&gt;
            &lt;span style="color:blue"&gt;int&lt;/span&gt; index = Convert.ToInt32(e.CommandArgument); 
 
            &lt;span style="color:green"&gt;// Retrieve the row that contains the button  &lt;/span&gt;
            &lt;span style="color:green"&gt;// from the Rows collection. &lt;/span&gt;
            GridViewRow row = EditableGrid.Rows[index]; 
 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s2 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s3 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s4 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s5 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;)).Text; 
 
            TextBox newScore1 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore2 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore3 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore4 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore5 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
 
            newScore1.Text = s2; 
            newScore2.Text = s3; 
            newScore3.Text = s4; 
            newScore4.Text = s5; 
            newScore5.Text = &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
 
            &lt;span style="color:green"&gt;// Sets focus on the Round 5 textbox &lt;/span&gt;
            Control c = &lt;span style="color:blue"&gt;new&lt;/span&gt; Control(); 
            c = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.SetFocus(c); 
        } 
    } 
 }
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="background-color:white; color:black"&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Mon, 25 Jun 2012 16:26:47 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120625042647P</guid></item><item><title>New Post: Saving data</title><link>http://aspnetrealworldcontr.codeplex.com/discussions/360835</link><description>&lt;div style="line-height: normal;"&gt;
&lt;p&gt;I have everything working as it should except I went a little further and added a button to each row which allows me to delete the contents of the textbox&amp;nbsp;of the first column and shift the contents of each texbox in that row to the left by one column.&amp;nbsp;
 When I do this, I then update the last textbox with a new value and hit the Save button.&amp;nbsp; However, when I hit the save button, that row gets saved fine but&amp;nbsp;everything else&amp;nbsp;I changed throughout the rest of the gridview does not save.&amp;nbsp; I
 have tried a Javascript which would call the Save button first before shifting the cells, but that doesn't seem to work either.&amp;nbsp; Does anyone have any idea how I can save the contents of the gridview first before shifting the contents to the left for a
 particular row?&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:underline"&gt;ASPX&lt;/span&gt;&lt;/p&gt;
&lt;div style="background-color:white; color:black"&gt;
&lt;pre&gt;&amp;lt;script type=&lt;span style="color:#a31515"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt; 
        function ClickButton() 
        { 
            document.getElementById(&lt;span style="color:#a31515"&gt;'SaveButton'&lt;/span&gt;).click(); 
        } 
&amp;lt;/script&amp;gt; 
 
&amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Update&amp;quot;&lt;/span&gt; /&amp;gt; 
        &amp;lt;Grids:BulkEditGridView ID=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; AllowSorting=&lt;span style="color:#a31515"&gt;&amp;quot;True&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt; 
            DataKeyNames=&lt;span style="color:#a31515"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; DataSourceID=&lt;span style="color:#a31515"&gt;&amp;quot;ScoresDataSource&amp;quot;&lt;/span&gt; OnRowDataBound=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowDataBound&amp;quot;&lt;/span&gt; 
            SaveButtonID=&lt;span style="color:#a31515"&gt;&amp;quot;SaveButton&amp;quot;&lt;/span&gt; OnRowCommand=&lt;span style="color:#a31515"&gt;&amp;quot;EditableGrid_RowCommand&amp;quot;&lt;/span&gt;&amp;gt; 
            &amp;lt;Columns&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Action&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Button ID=&lt;span style="color:#a31515"&gt;&amp;quot;ShiftScore&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;&amp;quot;Drop Oldest Round&amp;quot;&lt;/span&gt; OnClientClick=&lt;span style="color:#a31515"&gt;&amp;quot;ClickButton()&amp;quot;&lt;/span&gt; 
                            CommandName=&lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt; CommandArgument=&lt;span style="color:#a31515"&gt;&amp;quot;&amp;lt;%# ((GridViewRow) Container).RowIndex %&amp;gt;&amp;quot;&lt;/span&gt; 
                            Enabled=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Score5&amp;quot;).ToString() != &amp;quot;0&amp;quot; %&amp;gt;'&lt;/span&gt; /&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField Visible=&lt;span style="color:#a31515"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;IdTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Id&amp;quot;) %&amp;gt;'&lt;/span&gt; ReadOnly=&lt;span style="color:#a31515"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt; &amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;) %&amp;gt;, 
                        &amp;lt;%# Eval(&lt;span style="color:#a31515"&gt;&amp;quot;Member.FirstName&amp;quot;&lt;/span&gt;) %&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Current Member&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Member.CurrentMember&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblCurrentMember&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Eval(&amp;quot;Member.CurrentMember&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Best Score&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;BestScore&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;BestScoreTextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;BestScore&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 1&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score1&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score1&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 2&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score2&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score2&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 3&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score3&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score3&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 4&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score4&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score4&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Round 5&amp;quot;&lt;/span&gt; SortExpression=&lt;span style="color:#a31515"&gt;&amp;quot;Score5&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:TextBox ID=&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; MaxLength=&lt;span style="color:#a31515"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; Text=&lt;span style="color:#a31515"&gt;'&amp;lt;%# Bind(&amp;quot;Score5&amp;quot;) %&amp;gt;'&lt;/span&gt;&amp;gt;&amp;lt;/asp:TextBox&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
                &amp;lt;asp:TemplateField HeaderText=&lt;span style="color:#a31515"&gt;&amp;quot;Handicap&amp;quot;&lt;/span&gt;&amp;gt; 
                    &amp;lt;ItemTemplate&amp;gt; 
                        &amp;lt;asp:Label ID=&lt;span style="color:#a31515"&gt;&amp;quot;lblHandicap&amp;quot;&lt;/span&gt; runat=&lt;span style="color:#a31515"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/asp:Label&amp;gt; 
                    &amp;lt;/ItemTemplate&amp;gt; 
                &amp;lt;/asp:TemplateField&amp;gt; 
            &amp;lt;/Columns&amp;gt; 
        &amp;lt;/Grids:BulkEditGridView&amp;gt;
&lt;/pre&gt;
&lt;pre&gt;&lt;span style="text-decoration:underline"&gt;Code Behind&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;div style="background-color:white; color:black"&gt;&lt;pre&gt;&lt;span style="color:blue"&gt;public &lt;/span&gt;&lt;span style="color:blue"&gt;partial&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; Management_ScoresAdmin : System.Web.UI.Page 
{ 
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (!IsPostBack) 
        { 
            EditableGrid.Sort(&lt;span style="color:#a31515"&gt;&amp;quot;Member.LastName&amp;quot;&lt;/span&gt;, SortDirection.Ascending); 
        } 
    } 
 
     
    &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;class&lt;/span&gt; BulkEditGridView : System.Web.UI.WebControls.GridView 
    { 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; GridViewRow CreateRow(&lt;span style="color:blue"&gt;int&lt;/span&gt; rowIndex, &lt;span style="color:blue"&gt;int&lt;/span&gt; dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState) 
        { 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;base&lt;/span&gt;.CreateRow(rowIndex, dataSourceIndex, rowType, rowState | DataControlRowState.Edit); 
        } 
 
        [IDReferenceProperty(&lt;span style="color:blue"&gt;typeof&lt;/span&gt;(Control))] 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt; SaveButtonID 
        { 
            &lt;span style="color:blue"&gt;get&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;string&lt;/span&gt; val = (&lt;span style="color:blue"&gt;string&lt;/span&gt;)&lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;]; 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (val == &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                { 
                    &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;string&lt;/span&gt;.Empty; 
                } 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; val; 
            } 
            &lt;span style="color:blue"&gt;set&lt;/span&gt; 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.ViewState[&lt;span style="color:#a31515"&gt;&amp;quot;SaveButtonID&amp;quot;&lt;/span&gt;] = value; 
            } 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; OnLoad(EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.OnLoad(e); 
 
            &lt;span style="color:green"&gt;//Attach an event handler to the save button. &lt;/span&gt;
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;false&lt;/span&gt; == &lt;span style="color:blue"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID)) 
            { 
                Control btn = RecursiveFindControl(&lt;span style="color:blue"&gt;this&lt;/span&gt;.NamingContainer, &lt;span style="color:blue"&gt;this&lt;/span&gt;.SaveButtonID); 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != btn) 
                { 
                    &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; Button) 
                    { 
                        ((Button)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; LinkButton) 
                    { 
                        ((LinkButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(SaveClicked); 
                    } 
                    &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (btn &lt;span style="color:blue"&gt;is&lt;/span&gt; ImageButton) 
                    { 
                        ((ImageButton)btn).Click &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; ImageClickEventHandler(SaveClicked); 
                    } 
 
                    &lt;span style="color:green"&gt;//add more button types here. &lt;/span&gt;
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; Control RecursiveFindControl(Control namingcontainer, &lt;span style="color:blue"&gt;string&lt;/span&gt; controlName) 
        { 
            Control c = namingcontainer.FindControl(controlName); 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (c != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; c; 
 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (namingcontainer.NamingContainer != &lt;span style="color:blue"&gt;null&lt;/span&gt;) 
                &lt;span style="color:blue"&gt;return&lt;/span&gt; RecursiveFindControl(namingcontainer.NamingContainer, controlName); 
 
            &lt;span style="color:blue"&gt;return&lt;/span&gt; &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; SaveClicked(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs e) 
        { 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.Save(); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.DataBind(); 
        } 
 
        &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;override&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; InitializeRow(GridViewRow row, DataControlField[] fields) 
        { 
            &lt;span style="color:blue"&gt;base&lt;/span&gt;.InitializeRow(row, fields); 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (DataControlFieldCell cell &lt;span style="color:blue"&gt;in&lt;/span&gt; row.Cells) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (cell.Controls.Count &amp;gt; 0) 
                { 
                    AddChangedHandlers(cell.Controls); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; AddChangedHandlers(ControlCollection controls) 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (Control ctrl &lt;span style="color:blue"&gt;in&lt;/span&gt; controls) 
            { 
                &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; TextBox) 
                { 
                    ((TextBox)ctrl).TextChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; CheckBox) 
                { 
                    ((CheckBox)ctrl).CheckedChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
                &lt;span style="color:blue"&gt;else&lt;/span&gt; &lt;span style="color:blue"&gt;if&lt;/span&gt; (ctrl &lt;span style="color:blue"&gt;is&lt;/span&gt; DropDownList) 
                { 
                    ((DropDownList)ctrl).SelectedIndexChanged &amp;#43;= &lt;span style="color:blue"&gt;new&lt;/span&gt; EventHandler(&lt;span style="color:blue"&gt;this&lt;/span&gt;.HandleRowChanged); 
                } 
            } 
        } 
 
        &lt;span style="color:blue"&gt;void&lt;/span&gt; HandleRowChanged(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, EventArgs args) 
        { 
            GridViewRow row = ((Control)sender).NamingContainer &lt;span style="color:blue"&gt;as&lt;/span&gt; GridViewRow; 
            &lt;span style="color:blue"&gt;if&lt;/span&gt; (&lt;span style="color:blue"&gt;null&lt;/span&gt; != row &amp;amp;&amp;amp; !dirtyRows.Contains(row.RowIndex)) 
            { 
                dirtyRows.Add(row.RowIndex); 
            } 
        } 
 
        &lt;span style="color:blue"&gt;private&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt; dirtyRows = &lt;span style="color:blue"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color:blue"&gt;int&lt;/span&gt;&amp;gt;(); 
 
        &lt;span style="color:blue"&gt;public&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; Save() 
        { 
            &lt;span style="color:blue"&gt;foreach&lt;/span&gt; (&lt;span style="color:blue"&gt;int&lt;/span&gt; row &lt;span style="color:blue"&gt;in&lt;/span&gt; dirtyRows) 
            { 
                &lt;span style="color:blue"&gt;this&lt;/span&gt;.UpdateRow(row, &lt;span style="color:blue"&gt;false&lt;/span&gt;); 
            } 
 
            dirtyRows.Clear(); 
        } 
    } 
 
    &lt;span style="color:green"&gt;// Control the Shift Button in the Scores GridView &lt;/span&gt;
    &lt;span style="color:blue"&gt;protected&lt;/span&gt; &lt;span style="color:blue"&gt;void&lt;/span&gt; EditableGrid_RowCommand(&lt;span style="color:blue"&gt;object&lt;/span&gt; sender, GridViewCommandEventArgs e) 
    { 
        &lt;span style="color:blue"&gt;if&lt;/span&gt; (e.CommandName == &lt;span style="color:#a31515"&gt;&amp;quot;Shift&amp;quot;&lt;/span&gt;) 
        { 
            &lt;span style="color:green"&gt;// Retrieve the row index stored in the  &lt;/span&gt;
            &lt;span style="color:green"&gt;// CommandArgument property. &lt;/span&gt;
            &lt;span style="color:blue"&gt;int&lt;/span&gt; index = Convert.ToInt32(e.CommandArgument); 
 
            &lt;span style="color:green"&gt;// Retrieve the row that contains the button  &lt;/span&gt;
            &lt;span style="color:green"&gt;// from the Rows collection. &lt;/span&gt;
            GridViewRow row = EditableGrid.Rows[index]; 
 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s2 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s3 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s4 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;)).Text; 
            &lt;span style="color:blue"&gt;string&lt;/span&gt; s5 = ((TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;)).Text; 
 
            TextBox newScore1 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score1TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore2 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score2TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore3 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score3TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore4 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score4TextBox&amp;quot;&lt;/span&gt;); 
            TextBox newScore5 = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
 
            newScore1.Text = s2; 
            newScore2.Text = s3; 
            newScore3.Text = s4; 
            newScore4.Text = s5; 
            newScore5.Text = &lt;span style="color:blue"&gt;null&lt;/span&gt;; 
 
            &lt;span style="color:green"&gt;// Sets focus on the Round 5 textbox &lt;/span&gt;
            Control c = &lt;span style="color:blue"&gt;new&lt;/span&gt; Control(); 
            c = (TextBox)row.FindControl(&lt;span style="color:#a31515"&gt;&amp;quot;Score5TextBox&amp;quot;&lt;/span&gt;); 
            &lt;span style="color:blue"&gt;this&lt;/span&gt;.SetFocus(c); 
        } 
    } 
 }
&lt;/pre&gt;
&lt;/div&gt;
&lt;div style="background-color:white; color:black"&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</description><author>Scubaboy</author><pubDate>Mon, 25 Jun 2012 16:26:47 GMT</pubDate><guid isPermaLink="false">New Post: Saving data 20120625042647P</guid></item><item><title>Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606]</title><link>http://aspnetrealworldcontr.codeplex.com/workitem/10606</link><description>Using the FrozenGridView control, the header scrolls along with the rest of the grid in IE8.  When you run in Compatibility mode, the control works as expected.&lt;br /&gt;Comments: ** Comment from web user: mgonzales03 ** &lt;p&gt;anyone fix this issue&amp;#63;&lt;/p&gt;</description><author>mgonzales03</author><pubDate>Wed, 05 Oct 2011 17:41:45 GMT</pubDate><guid isPermaLink="false">Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606] 20111005054145P</guid></item><item><title>Reviewed: 2007.01.1 Alpha (Feb 22, 2011)</title><link>http://aspnetrealworldcontr.codeplex.com/releases/view/1674#ReviewBy-wilfredogr</link><description>Rated 3 Stars &amp;#40;out of 5&amp;#41; - I&amp;#39;m using RealWorld.Grid.dll with VS.NET 2010, ASP.NET and Netframework 4. I cant get to frezze header, it scroll with all data like normal GridView.&amp;#10;&amp;#10;The Height and Width base dont work.</description><author>wilfredogr</author><pubDate>Tue, 22 Feb 2011 14:56:33 GMT</pubDate><guid isPermaLink="false">Reviewed: 2007.01.1 Alpha (Feb 22, 2011) 20110222025633P</guid></item><item><title>Source code checked in, #57274</title><link>http://aspnetrealworldcontr.codeplex.com/SourceControl/changeset/changes/57274</link><description>Checked in by server upgrade</description><author>_TFSSERVICE</author><pubDate>Wed, 28 Jul 2010 22:13:23 GMT</pubDate><guid isPermaLink="false">Source code checked in, #57274 20100728101323P</guid></item><item><title>Commented Issue: Insert Row Dropdowns Not Populating [529]</title><link>http://aspnetrealworldcontr.codeplex.com/workitem/529</link><description>I want to use the insert row, but it will not populate my drop down lists with any values.  It will actually insert a row, but I need the drop down lists populated.  Any ideas&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: ronboylan ** &lt;p&gt;Can you post the latest attached file&amp;#63;&lt;/p&gt;</description><author>ronboylan</author><pubDate>Wed, 02 Jun 2010 17:36:21 GMT</pubDate><guid isPermaLink="false">Commented Issue: Insert Row Dropdowns Not Populating [529] 20100602053621P</guid></item><item><title>Commented Issue: Insert Row Dropdowns Not Populating [529]</title><link>http://aspnetrealworldcontr.codeplex.com/workitem/529</link><description>I want to use the insert row, but it will not populate my drop down lists with any values.  It will actually insert a row, but I need the drop down lists populated.  Any ideas&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: ronboylan ** &lt;p&gt;Where are the attached files&amp;#63;&lt;/p&gt;</description><author>ronboylan</author><pubDate>Wed, 02 Jun 2010 17:33:50 GMT</pubDate><guid isPermaLink="false">Commented Issue: Insert Row Dropdowns Not Populating [529] 20100602053350P</guid></item><item><title>Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606]</title><link>http://aspnetrealworldcontr.codeplex.com/WorkItem/View.aspx?WorkItemId=10606</link><description>Using the FrozenGridView control, the header scrolls along with the rest of the grid in IE8.  When you run in Compatibility mode, the control works as expected.&lt;br /&gt;Comments: ** Comment from web user: Akeman ** &lt;p&gt;Hello, &lt;/p&gt;&lt;p&gt;is there anyone who can solve this problem&amp;#63;&lt;br /&gt;I have wasted some hours now to find out that FrozenGridView does not work in IE8.&lt;br /&gt;This is quite frustrating.&lt;/p&gt;&lt;p&gt;Stefan&lt;/p&gt;</description><author>Akeman</author><pubDate>Wed, 03 Mar 2010 15:10:36 GMT</pubDate><guid isPermaLink="false">Commented Issue: FrozenGridView header scrolls and doesn't freeze in IE8 [10606] 20100303031036P</guid></item><item><title>New Post: Using DataFormatStrings on bound fields and template field controls</title><link>http://aspnetrealworldcontr.codeplex.com/Thread/View.aspx?ThreadId=80231</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Has anyone encountered an issue using DataFormatStrings with the BulkEditGridView? When I attempt to use bound fields, or template fields with controls the use the &amp;quot;BIND&amp;quot; syntax, my data loads correctly, but does not save correctly. I receive an &amp;quot;Input String Format Error&amp;quot;. I have tracked it down to the BulkEditGridView not removing the DataFormatString (in this case the Currency format - '$xx.xx') before calling the UpdateRow function. To note, I am using the BulkEditGridView inside an ASP.Net AJAX update panel.&lt;/p&gt;
&lt;p&gt;Thanks for your time,&lt;/p&gt;
&lt;p&gt;Everett&lt;/p&gt;&lt;/div&gt;</description><author>everettcomstock</author><pubDate>Fri, 08 Jan 2010 21:49:06 GMT</pubDate><guid isPermaLink="false">New Post: Using DataFormatStrings on bound fields and template field controls 20100108094906P</guid></item><item><title>New Post: Using DataFormatStrings on bound fields and template field controls</title><link>http://aspnetrealworldcontr.codeplex.com/Thread/View.aspx?ThreadId=80231</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Has anyone encountered an issue using DataFormatStrings with the BulkEditGridView? When I attempt to use bound fields, or template fields with controls the use the &amp;quot;BIND&amp;quot; syntax, my data loads correctly, but does not save correctly. I receive an &amp;quot;Input String Format Error&amp;quot;. I have tracked it down to the BulkEditGridView not removing the DataFormatString (in this case the Currency format - '$xx.xx') before calling the UpdateRow function. To note, I am using the BulkEditGridView inside an ASP.Net AJAX update panel.&lt;/p&gt;
&lt;p&gt;Thanks for your time,&lt;/p&gt;
&lt;p&gt;Everett&lt;/p&gt;&lt;/div&gt;</description><author>everettcomstock</author><pubDate>Fri, 08 Jan 2010 21:49:06 GMT</pubDate><guid isPermaLink="false">New Post: Using DataFormatStrings on bound fields and template field controls 20100108094906P</guid></item><item><title>New Post: Using DataFormatStrings on bound fields and template field controls</title><link>http://aspnetrealworldcontr.codeplex.com/Thread/View.aspx?ThreadId=80231</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;Has anyone encountered an issue using DataFormatStrings with the BulkEditGridView? When I attempt to use bound fields, or template fields with controls the use the &amp;quot;BIND&amp;quot; syntax, my data loads correctly, but does not save correctly. I receive an &amp;quot;Input String Format Error&amp;quot;. I have tracked it down to the BulkEditGridView not removing the DataFormatString (in this case the Currency format - '$xx.xx') before calling the UpdateRow function. To note, I am using the BulkEditGridView inside an ASP.Net AJAX update panel.&lt;/p&gt;
&lt;p&gt;Thanks for your time,&lt;/p&gt;
&lt;p&gt;Everett&lt;/p&gt;&lt;/div&gt;</description><author>everettcomstock</author><pubDate>Fri, 08 Jan 2010 21:49:06 GMT</pubDate><guid isPermaLink="false">New Post: Using DataFormatStrings on bound fields and template field controls 20100108094906P</guid></item></channel></rss>