<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>GridView</title>
        <link>http://geekswithblogs.net/dotNETvinz/category/11377.aspx</link>
        <description>GridView</description>
        <language>en-US</language>
        <copyright>Vincent Maverick Durano</copyright>
        <managingEditor>vmsdurano@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Tip Of The Day - Remove GridView Row Highlighting on Edit Mode</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2011/04/26/tip-of-the-day---remove-gridview-row-highlighting-on.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Typically we will attach the mouseover and mouseout client-side events on the gridview rows to highlight rows on mouseover, but there are cases that we don't want to make the row highlighted when we are on edit mode. To do this we can check the GridView EditIndex to determine if the row is on edit mode and then do the validation there. Here's a sample code block below of what I am talking about:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="width: 600px; overflow: auto"&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GridView1_RowDataBound(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewRowEventArgs e) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Row.RowType == DataControlRowType.DataRow) {
                &lt;span class="kwrd"&gt;string&lt;/span&gt; onmouseoverStyle = &lt;span class="str"&gt;"this.style.backgroundColor='blue';this.style.color ='white';"&lt;/span&gt;;
                &lt;span class="kwrd"&gt;string&lt;/span&gt; onmouseoutStyle = &lt;span class="str"&gt;"this.style.backgroundColor='white';this.style.color ='black';"&lt;/span&gt;;

                &lt;span class="kwrd"&gt;if&lt;/span&gt; (GridView1.EditIndex != -1) {
                    e.Row.Attributes.Remove(&lt;span class="str"&gt;"onmouseover"&lt;/span&gt;);
                }
                &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                    e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseover"&lt;/span&gt;, onmouseoverStyle);
                    e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseout"&lt;/span&gt;, onmouseoutStyle);
                }
            }
}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;As you can see the code above is very straight forward. What it does is it checks if the gridview is on edit mode and when it's on edit mode we removed the onmouseover attribute and when it's not we attach the onmouseover attribute again and apply the desired styles. That's simple! 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e4f98925-06a8-4862-9a6f-645e1e1263fd" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TipsTricks" rel="tag"&gt;TipsTricks&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/145047.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2011/04/26/tip-of-the-day---remove-gridview-row-highlighting-on.aspx</guid>
            <pubDate>Tue, 26 Apr 2011 06:17:20 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/145047.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2011/04/26/tip-of-the-day---remove-gridview-row-highlighting-on.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/145047.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/145047.aspx</trackback:ping>
        </item>
        <item>
            <title>Using Radio Button in GridView with Validation</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2011/03/03/using-radio-button-in-gridview-with-validation.aspx</link>
            <description>&lt;p&gt;A developer is asking how to select one radio button at a time if the radio button is inside the GridView.  As you may know setting the group name attribute of radio button will not work if the radio button is located within a Data Representation control like GridView. This because the radio button inside the gridview bahaves differentely. Since a gridview is rendered as table element , at run time it will assign different "name" to each radio button. Hence you are able to select multiple rows.&lt;/p&gt; &lt;p&gt;In this post I'm going to demonstrate how select one radio button at a time in gridview and add a simple validation on it. To get started let's go ahead and fire up visual studio and the create a new web application / website project. Add a WebForm and then add gridview. The mark up would look something like this:&lt;/p&gt; &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt; &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RadioButton&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="rb"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Col1"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="First Column"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Col2"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Second Column"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Noticed that I've added a templatefield column so that we can add the radio button there. Also I have set up some BoundField columns and set the DataFields as RowNumber, Col1 and Col2. These columns are just dummy columns and i used it for the simplicity of this example. Now where these columns came from? These columns are created by hand at the code behind file of the ASPX. Here's the code below:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; DataTable FillData() {

            DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();
            DataRow dr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

            &lt;span class="rem"&gt;//Create DataTable columns&lt;/span&gt;
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Col1"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Col2"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));

            &lt;span class="rem"&gt;//Create Row for each columns&lt;/span&gt;
            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 1;
            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 2;
            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"AA"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"BB"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 3;
            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 4;
            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 5;
            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;
            dt.Rows.Add(dr);

            &lt;span class="kwrd"&gt;return&lt;/span&gt; dt;
}&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And here's the code for binding the GridView with the dummy data above.&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack) {
                GridView1.DataSource = FillData();
                GridView1.DataBind();
            }
}&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Okay we have now a GridView data with a radio button on each row. Now lets go ahead and switch back to ASPX mark up. In this example I'm going to use a JavaScript for validating the radio button to select one radio button at a time. Here's the javascript code below:&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
function CheckOtherIsCheckedByGVID(rb) {
        var isChecked = rb.&lt;span class="kwrd"&gt;checked&lt;/span&gt;;
        var row = rb.parentNode.parentNode;
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (isChecked) {
            row.style.backgroundColor = &lt;span class="str"&gt;'#B6C4DE'&lt;/span&gt;;
            row.style.color = &lt;span class="str"&gt;'black'&lt;/span&gt;;
        }
        var currentRdbID = rb.id;
        parent = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
        var items = parent.getElementsByTagName(&lt;span class="str"&gt;'input'&lt;/span&gt;);

        &lt;span class="kwrd"&gt;for&lt;/span&gt; (i = 0; i &amp;lt; items.length; i++) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (items[i].id != currentRdbID &amp;amp;&amp;amp; items[i].type == &lt;span class="str"&gt;"radio"&lt;/span&gt;) {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (items[i].&lt;span class="kwrd"&gt;checked&lt;/span&gt;) {
                    items[i].&lt;span class="kwrd"&gt;checked&lt;/span&gt; = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
                    items[i].parentNode.parentNode.style.backgroundColor = &lt;span class="str"&gt;'white'&lt;/span&gt;;
                    items[i].parentNode.parentNode.style.color = &lt;span class="str"&gt;'#696969'&lt;/span&gt;;
                }
            }
        }
}&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;p&gt;The function above sets the row of the current selected radio button's style to determine that the row is selected and then loops through the radio buttons in the gridview and then de-select the previous selected radio button and set the row style back to its default. You can then call the javascript function above at onlick event of radio button like below:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:RadioButton&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="rb"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="javascript:CheckOtherIsCheckedByGVID(this);"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Here's the output below:&lt;/p&gt;
&lt;p&gt;On Load:&lt;/p&gt;
&lt;p&gt;&lt;img width="339" height="257" alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/radioInGrid.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;After Selecting a Radio Button:&lt;/p&gt;
&lt;p&gt;&lt;img width="339" height="268" alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/radioInGrid2.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;As you have noticed, on initial load there's no default selected radio in the GridView. Now let's add a simple validation for that. We will basically display an error message if a user clicks a button that triggers a postback without selecting  a radio button in the GridView. Here's the javascript for the validation:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
function ValidateRadioButton(sender, args) {
        var gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
        var items = gv.getElementsByTagName(&lt;span class="str"&gt;'input'&lt;/span&gt;);
        &lt;span class="kwrd"&gt;for&lt;/span&gt; (var i = 0; i &amp;lt; items.length ; i++) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (items[i].type == &lt;span class="str"&gt;"radio"&lt;/span&gt;) {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (items[i].&lt;span class="kwrd"&gt;checked&lt;/span&gt;) {
                    args.IsValid = &lt;span class="kwrd"&gt;true&lt;/span&gt;;
                    &lt;span class="kwrd"&gt;return&lt;/span&gt;;
                }
                &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                    args.IsValid = &lt;span class="kwrd"&gt;false&lt;/span&gt;;
                }
            }
        }
}&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The function above loops through the rows in gridview and find all the radio buttons within it. It will then check each radio button checked property. If a radio is checked then set IsValid to true else set it to false.  The reason why I'm using IsValid is because I'm using the ASP validator control for validation. Now add the following mark up below under the GridView declaration:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div style="width: 600px; overflow: auto"&gt;
&lt;pre class="csharpcode"&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="lblMessage"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;br&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="btn"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="POST"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="btn_Click"&lt;/span&gt; &lt;span class="attr"&gt;ValidationGroup&lt;/span&gt;&lt;span class="kwrd"&gt;="GroupA"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:CustomValidator&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="CustomValidator1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ErrorMessage&lt;/span&gt;&lt;span class="kwrd"&gt;="Please select row in the grid."&lt;/span&gt; &lt;span class="attr"&gt;ClientValidationFunction&lt;/span&gt;&lt;span class="kwrd"&gt;="ValidateRadioButton"&lt;/span&gt; &lt;span class="attr"&gt;ValidationGroup&lt;/span&gt;&lt;span class="kwrd"&gt;="GroupA"&lt;/span&gt; &lt;span class="attr"&gt;style&lt;/span&gt;&lt;span class="kwrd"&gt;="display:none"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:CustomValidator&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ValidationSummary&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ValidationSummary1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ValidationGroup&lt;/span&gt;&lt;span class="kwrd"&gt;="GroupA"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Error List:"&lt;/span&gt; &lt;span class="attr"&gt;DisplayMode&lt;/span&gt;&lt;span class="kwrd"&gt;="BulletList"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Red"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;And then at Button Click event add this simple code below just to test if  the validation works:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;pre class="csharpcode"&gt;
&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; btn_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {
            lblMessage.Text = &lt;span class="str"&gt;"Postback at: "&lt;/span&gt; + DateTime.Now.ToString(&lt;span class="str"&gt;"hh:mm:ss tt"&lt;/span&gt;);
}&lt;/pre&gt;

&lt;br /&gt;
&lt;p&gt;Here's the output below that you can see in the browser:&lt;/p&gt;
&lt;p&gt;&lt;img width="342" height="356" alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/radioInGrid3.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img width="352" height="302" alt="" src="http://geekswithblogs.net/images/geekswithblogs_net/dotNETvinz/radioInGrid4.jpg" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;That's it! I hope someone find this post useful!&lt;/p&gt;
&lt;div style="padding: 0px; margin: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:c08f3045-235e-45d4-94d4-055058931115" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/144163.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2011/03/03/using-radio-button-in-gridview-with-validation.aspx</guid>
            <pubDate>Thu, 03 Mar 2011 09:20:55 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/144163.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2011/03/03/using-radio-button-in-gridview-with-validation.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/144163.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/144163.aspx</trackback:ping>
        </item>
        <item>
            <title>Highlight Row in GridView with Colored Columns</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2011/01/13/highlight-row-in-gridview-with-colored-columns.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;I wrote a blog post a while back before &lt;/span&gt;&lt;/span&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2009/02/24/tiptrick-highlighting-gridview-rows-on-mouseover.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt; that demonstrate how to highlight a GridView row on mouseover and as you can see its very easy to highlight rows in GridView. One of my colleague uses the same technique for implemeting gridview row highlighting but the problem is that if a Column has background color on it that cell will not be highlighted anymore. To make it more clear then let's build up a sample application.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ASPX:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt; &lt;span class="attr"&gt;onrowcreated&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1_RowCreated"&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &lt;span class="attr"&gt;onrowdatabound&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1_RowDataBound"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:GridView&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CODE BEHIND:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; DataTable FillData() {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            DataRow dr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="rem"&gt;//Create DataTable columns&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Col1"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Col2"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Col3"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="rem"&gt;//Create Row for each columns&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 1;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col3"&lt;/span&gt;] = &lt;span class="str"&gt;"C"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 2;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"AA"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"BB"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col3"&lt;/span&gt;] = &lt;span class="str"&gt;"CC"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 3;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col3"&lt;/span&gt;] = &lt;span class="str"&gt;"CC"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 4;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col3"&lt;/span&gt;] = &lt;span class="str"&gt;"CC"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 5;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col1"&lt;/span&gt;] = &lt;span class="str"&gt;"A"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col2"&lt;/span&gt;] = &lt;span class="str"&gt;"B"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"Col3"&lt;/span&gt;] = &lt;span class="str"&gt;"CC"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; dt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;}&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;                GridView1.DataSource = FillData();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt;                GridView1.DataBind();&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;As you can see there's nothing fancy in the code above. It just contain a method that fills a DataTable with a dummy data on it. Now here's the code for row highlighting:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GridView1_RowCreated(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewRowEventArgs e) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;            &lt;span class="rem"&gt;//Set Background Color for Columns 1 and 3&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            e.Row.Cells[1].BackColor = System.Drawing.Color.Beige;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            e.Row.Cells[3].BackColor = System.Drawing.Color.Red;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="rem"&gt;//Attach onmouseover and onmouseout for row highlighting&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseover"&lt;/span&gt;, &lt;span class="str"&gt;"this.style.backgroundColor='Blue'"&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseout"&lt;/span&gt;, &lt;span class="str"&gt;"this.style.backgroundColor=''"&lt;/span&gt;);  &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Running the code above will show something like this in the browser:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On initial load:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvhighlight.jpg" width="331" height="292" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On mouseover of GridView row:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvhighlight2.jpg" width="349" height="313" /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Noticed that Col1 and Col3 are not highlighted. Why? the reason is that Col1 and Col3 cells has background color set on it and we only highlight the rows (TR) and not the columns (TD) that's why on mouseover only the rows will be highlighted. To fix the issue we will create a javascript method that would remove the background color of the columns when highlighting a row and on mouseout set back the original color that is set on Col1 and Col3. Here are the codes below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;JavaScript&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    &lt;span class="kwrd"&gt;function&lt;/span&gt; HighLightRow(rowIndex, colIndex,colIndex2, flag) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;var&lt;/span&gt; selRow = gv.rows[rowIndex];&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;        &lt;span class="kwrd"&gt;if&lt;/span&gt; (rowIndex &amp;gt; 0) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (flag == &lt;span class="str"&gt;"sel"&lt;/span&gt;) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                gv.rows[rowIndex].style.backgroundColor = &lt;span class="str"&gt;'Blue'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                gv.rows[rowIndex].style.color = &lt;span class="str"&gt;"White"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                gv.rows[rowIndex].cells[colIndex].style.backgroundColor = &lt;span class="str"&gt;''&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                gv.rows[rowIndex].cells[colIndex2].style.backgroundColor = &lt;span class="str"&gt;''&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                gv.rows[rowIndex].style.backgroundColor = &lt;span class="str"&gt;''&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;                gv.rows[rowIndex].style.color = &lt;span class="str"&gt;"Black"&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;                gv.rows[rowIndex].cells[colIndex].style.backgroundColor = &lt;span class="str"&gt;'Beige'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                gv.rows[rowIndex].cells[colIndex2].style.backgroundColor = &lt;span class="str"&gt;'Red'&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;   }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;The HighLightRow method is a javascript function that accepts four (4) parameters which are the &lt;em&gt;rowIndex&lt;/em&gt;,&lt;em&gt;colIndex&lt;/em&gt;,&lt;em&gt;colIndex2 &lt;/em&gt;and the &lt;em&gt;flag&lt;/em&gt;. The rowIndex is the current row index of the selected row in GridView. The colIndex is the index of Col1 and colIndex2 is the index of col3. We are passing these index because these columns has background color on it and we need to toggle its backgroundcolor when highlighting the row in GridView. Finally the flag is something that would determine if its selected or not. Now here's the code for calling the JavaScript function above.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;
&lt;div style="width: 600px; overflow: auto"&gt;
&lt;div class="csharpcode"&gt;
  &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GridView1_RowCreated(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewRowEventArgs e) {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;span class="rem"&gt;//Set Background Color for Columns 1 and 3&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            e.Row.Cells[1].BackColor = System.Drawing.Color.Beige;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            e.Row.Cells[3].BackColor = System.Drawing.Color.Red;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="rem"&gt;//Attach onmouseover and onmouseout for row highlighting&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;            &lt;span class="rem"&gt;//and call the HighLightRow method with the required parameters&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="kwrd"&gt;int&lt;/span&gt; index = e.Row.RowIndex + 1;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseover"&lt;/span&gt;, &lt;span class="str"&gt;"HighLightRow("&lt;/span&gt; + index + &lt;span class="str"&gt;","&lt;/span&gt; + 1 + &lt;span class="str"&gt;","&lt;/span&gt; + 3 + &lt;span class="str"&gt;",'sel')"&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            e.Row.Attributes.Add(&lt;span class="str"&gt;"onmouseout"&lt;/span&gt;, &lt;span class="str"&gt;"HighLightRow("&lt;/span&gt; + index + &lt;span class="str"&gt;","&lt;/span&gt; + 1 + &lt;span class="str"&gt;","&lt;/span&gt; + 3 + &lt;span class="str"&gt;",'dsel')"&lt;/span&gt;);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;   &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Running the code above will display something like this:
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On initial load:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvhighlight.jpg" width="331" height="292" /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On mouseover of GridView row:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvhighlight3.jpg" width="334" height="291" /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143461.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2011/01/13/highlight-row-in-gridview-with-colored-columns.aspx</guid>
            <pubDate>Thu, 13 Jan 2011 10:23:47 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143461.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2011/01/13/highlight-row-in-gridview-with-colored-columns.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143461.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143461.aspx</trackback:ping>
        </item>
        <item>
            <title>Inserting and Deleting Sub Rows in GridView</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2011/01/04/inserting-and-deleting-sub-rows-in-gridview.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;A user in the forums (&lt;a href="http://forums.asp.net/"&gt;http://forums.asp.net&lt;/a&gt;) is asking how to insert  sub rows in GridView and also add delete functionality for the inserted sub rows. In this post I'm going to demonstrate how to this in ASP.NET WebForms.  The basic idea to achieve this is we just need to insert row data in the DataSource that is being used in GridView since the GridView rows will be generated based on the DataSource data.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;To make it more clear then let's build up a sample application. To start fire up Visual Studio and create a WebSite or Web Application project and then add a new WebForm. In the WebForm ASPX page add this GridView markup below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div style="width: 600px; overflow: auto"&gt;   &lt;div class="csharpcode"&gt;     &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt; &lt;span class="attr"&gt;onrowdatabound&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1_RowDataBound"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Header 1"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TextBox1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Header 2"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TextBox2"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Header 3"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;                 &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TextBox3"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Action"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:LinkButton&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LinkButton1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="LinkButton1_Click"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Insert"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:LinkButton&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;                &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Then at the code behind source of ASPX page you can add this codes below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;div style="width: 600px; overflow: auto"&gt;
  &lt;div class="csharpcode"&gt;
    &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;private&lt;/span&gt; DataTable FillData() {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;            DataRow dr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;            &lt;span class="rem"&gt;//Create DataTable columns&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;            &lt;span class="rem"&gt;//Create Row for each columns&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 1;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 2;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 3;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  23:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 4;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  24:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  25:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  26:  &lt;/span&gt;            dr = dt.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  27:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 5;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  28:  &lt;/span&gt;            dt.Rows.Add(dr);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  29:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  30:  &lt;/span&gt;            &lt;span class="rem"&gt;//Store the DataTable in ViewState for future reference&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  31:  &lt;/span&gt;            ViewState[&lt;span class="str"&gt;"CurrentTable"&lt;/span&gt;] = dt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  32:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  33:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; dt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  34:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  35:  &lt;/span&gt;        }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  36:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  37:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BindGridView(DataTable dtSource) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  38:  &lt;/span&gt;            GridView1.DataSource = dtSource;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  39:  &lt;/span&gt;            GridView1.DataBind();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  40:  &lt;/span&gt;        }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  41:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  42:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; DataRow InsertRow(DataTable dtSource, &lt;span class="kwrd"&gt;string&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  43:  &lt;/span&gt;            DataRow dr = dtSource.NewRow();&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  44:  &lt;/span&gt;            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = &lt;span class="kwrd"&gt;value&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  45:  &lt;/span&gt;            &lt;span class="kwrd"&gt;return&lt;/span&gt; dr;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  46:  &lt;/span&gt;        }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  47:  &lt;/span&gt;        &lt;span class="rem"&gt;//private DataRow DeleteRow(DataTable dtSource,&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  48:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  49:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  50:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  51:  &lt;/span&gt;                BindGridView(FillData());&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  52:  &lt;/span&gt;            }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  53:  &lt;/span&gt;        }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  54:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  55:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LinkButton1_Click(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  56:  &lt;/span&gt;            LinkButton lb = (LinkButton)sender;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  57:  &lt;/span&gt;            GridViewRow row = (GridViewRow)lb.NamingContainer;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  58:  &lt;/span&gt;            DataTable dtCurrentData = (DataTable)ViewState[&lt;span class="str"&gt;"CurrentTable"&lt;/span&gt;];&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  59:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (lb.Text == &lt;span class="str"&gt;"Insert"&lt;/span&gt;) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  60:  &lt;/span&gt;                &lt;span class="rem"&gt;//Insert new row below the selected row&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  61:  &lt;/span&gt;                dtCurrentData.Rows.InsertAt(InsertRow(dtCurrentData, row.Cells[0].Text + &lt;span class="str"&gt;"-sub"&lt;/span&gt;), row.RowIndex + 1);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  62:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  63:  &lt;/span&gt;            }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  64:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  65:  &lt;/span&gt;                &lt;span class="rem"&gt;//Delete selected sub row&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  66:  &lt;/span&gt;                dtCurrentData.Rows.RemoveAt(row.RowIndex);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  67:  &lt;/span&gt;            }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  68:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  69:  &lt;/span&gt;            BindGridView(dtCurrentData);&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  70:  &lt;/span&gt;            ViewState[&lt;span class="str"&gt;"CurrentTable"&lt;/span&gt;] = dtCurrentData;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  71:  &lt;/span&gt;        }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  72:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  73:  &lt;/span&gt;        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; GridView1_RowDataBound(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, GridViewRowEventArgs e) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  74:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Row.RowType == DataControlRowType.DataRow) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  75:  &lt;/span&gt;                &lt;span class="kwrd"&gt;if&lt;/span&gt; (e.Row.Cells[0].Text.Contains(&lt;span class="str"&gt;"-sub"&lt;/span&gt;)) {&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  76:  &lt;/span&gt;                    ((LinkButton)e.Row.FindControl(&lt;span class="str"&gt;"LinkButton1"&lt;/span&gt;)).Text = &lt;span class="str"&gt;"Delete"&lt;/span&gt;;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  77:  &lt;/span&gt;                }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  78:  &lt;/span&gt;            }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  79:  &lt;/span&gt;        }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;As you can see the code above is pretty straight forward and self explanatory but just to give you a short explanation the code above is composed of three (3) private methods which are the FillData(), BindGridView and InsertRow(). The FillData() method is a method that returns a DataTable and basically creates a dummy data in the DataTable to be used as the GridView DataSource. You can replace the code in that method if you want to use actual data from database but for the purpose of this example I just fill the DataTable with a dummy data on it. The BindGridVew is a method that handles the actual binding of GridVew. The InsertRow() is a method that returns a DataRow. This method handles the insertion of the sub row. 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Now in the LinkButton OnClick event, we casted the sender to a LinkButton to determine the specific object that fires up the event and get the row values. We then reference the Data from ViewState to get the current data that is being used in the GridView. If the LinkButton text is "Insert" then we will insert new row to the DataSource ( in this case the DataTable) based on the rowIndex if not then Delete the sub row that was added. 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here are some screen shots of the output below: 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On initial load:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gv1.jpg" width="585" height="309" /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;After inserting a sub row:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gv2.jpg" width="571" height="335" /&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:bfefe013-9f72-47e2-85f3-39192d84ce6b" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143335.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2011/01/04/inserting-and-deleting-sub-rows-in-gridview.aspx</guid>
            <pubDate>Tue, 04 Jan 2011 09:52:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143335.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2011/01/04/inserting-and-deleting-sub-rows-in-gridview.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143335.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143335.aspx</trackback:ping>
        </item>
        <item>
            <title>FAQ: GridView Calculation with JavaScript - Editable Price Field</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---editable-price-field.aspx</link>
            <description>&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc6.jpg" /&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Recently I wrote a series of blog posts that demonstrates how to do calculation in GridView using JavaScripts. You can check the series of posts below:        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;FAQ: GridView Calculation with JavaScript&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;          &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---formatting-and-validation.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;FAQ: GridView Calculation with JavaScript - Formatting and Validation&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;          &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---displaying-quantity-total.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;FAQ: GridView Calculation with JavaScript - Displaying Quantity Total&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;          &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Recently a &lt;/span&gt;&lt;/span&gt;&lt;a href="http://forums.asp.net/t/1629944.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;user&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt; in the forums is asking how to calculate the total quantity, sub-totals and total amout in GridView  when a user enters the price and quantity in the TextBox field. Obviously the series of post  that I wrote will not work in this case because the price field in those examples are Label (read-only) and not TextBox fields. In this post I'm going to demonstrate how to accomplish this using the same method used in my previous examples. Basically I'm just going to modify the GridView declaration and replace the Label price field with a TextBox so that users can type on it. And finally modify the CalculateTotals() javascript function.        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here are the code blocks below:        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      
        &lt;span class="kwrd"&gt;function&lt;/span&gt; CalculateTotals() {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; tb = gv.getElementsByTagName(&lt;span class="str"&gt;"input"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; lb = gv.getElementsByTagName(&lt;span class="str"&gt;"span"&lt;/span&gt;);

            &lt;span class="kwrd"&gt;var&lt;/span&gt; sub = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; total = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexQ = 1;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexP = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; price = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; qty = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; totalQty = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; tbCount = tb.length / 2;
           
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; tbCount; i++) {
               
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].type == &lt;span class="str"&gt;"text"&lt;/span&gt;) {
                    ValidateNumber(tb[i + indexQ]);

                    sub = parseFloat(tb[i + indexP].value) * parseFloat(tb[i + indexQ].value);
              
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(sub)) {
                        lb[i].innerHTML = &lt;span class="str"&gt;"0.00"&lt;/span&gt;;
                        sub = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        lb[i].innerHTML = FormatToMoney(sub, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;); ;
                    }
                   
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(tb[i + indexQ].value) || tb[i + indexQ].value == &lt;span class="str"&gt;""&lt;/span&gt;) {
                        qty = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        qty = tb[i + indexQ].value;
                    }
 
                    totalQty += parseInt(qty);
                    total += parseFloat(sub);

                    indexQ++;
                    indexP++;
                }
            }

            lb[lb.length - 2].innerHTML = totalQty;
            lb[lb.length -1].innerHTML = FormatToMoney(total, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;);
        }

        &lt;span class="kwrd"&gt;function&lt;/span&gt; ValidateNumber(o) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (o.value.length &amp;gt; 0) {
                o.value = o.value.replace(/[^\d]+/g, &lt;span class="str"&gt;''&lt;/span&gt;); &lt;span class="rem"&gt;//Allow only whole numbers&lt;/span&gt;
            }
        }
        &lt;span class="kwrd"&gt;function&lt;/span&gt; isThousands(position) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Math.floor(position / 3) * 3 == position) &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;
        };

        &lt;span class="kwrd"&gt;function&lt;/span&gt; FormatToMoney(theNumber, theCurrency, theThousands, theDecimal) {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theDecimalDigits = Math.round((theNumber * 100) - (Math.floor(theNumber) * 100));
            theDecimalDigits = &lt;span class="str"&gt;""&lt;/span&gt; + (theDecimalDigits + &lt;span class="str"&gt;"0"&lt;/span&gt;).substring(0, 2);
            theNumber = &lt;span class="str"&gt;""&lt;/span&gt; + Math.floor(theNumber);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theOutput = theCurrency;
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (x = 0; x &amp;lt; theNumber.length; x++) {
                theOutput += theNumber.substring(x, x + 1);
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (isThousands(theNumber.length - x - 1) &amp;amp;&amp;amp; (theNumber.length - x - 1 != 0)) {
                    theOutput += theThousands;
                };
            };
            theOutput += theDecimal + theDecimalDigits;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; theOutput;
        } 
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="form1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;  &lt;span class="attr"&gt;ShowFooter&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                   &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Description"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Description"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Price"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTPrice"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                             &lt;span class="attr"&gt;onkeyup&lt;/span&gt;&lt;span class="kwrd"&gt;="CalculateTotals();"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Qty:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Quantity"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTQty"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                             &lt;span class="attr"&gt;onkeyup&lt;/span&gt;&lt;span class="kwrd"&gt;="CalculateTotals();"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLQtyTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                           &lt;span class="attr"&gt;Font-Bold&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Blue"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; /&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;                 &lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Amount:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Sub-Total"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLSubTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                           &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;/pre&gt;

&lt;pre class="csharpcode"&gt;                           &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Font-Bold&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"/&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7118395a-0a3f-425d-9c2a-b0e6371829d2" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143071.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---editable-price-field.aspx</guid>
            <pubDate>Thu, 09 Dec 2010 15:43:16 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143071.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---editable-price-field.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143071.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143071.aspx</trackback:ping>
        </item>
        <item>
            <title>FAQ: GridView Calculation with JavaScript - Displaying Quantity Total</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---displaying-quantity-total.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Previously we've talked about how &lt;span&gt;calculate the sub-totals and grand total in GridView &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;, how to format the numbers into a currency format and how to validate the quantity to just accept whole numbers using JavaScript &lt;/span&gt;&lt;/span&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---formatting-and-validation.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;. One of the users in the forum (&lt;/span&gt;&lt;/span&gt;&lt;a href="http://forums.asp.net"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;http://forums.asp.net&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;) is asking if how to modify the script to display the quantity total in the footer. In this post I'm going to show you how to it. Basically we just need to modify the javascript CalculateTotals function and add the codes there for calculating the quantity total and display it in the footer.          &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here are the code blocks below:        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div style="width: 600px; overflow: auto"&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      
        &lt;span class="kwrd"&gt;function&lt;/span&gt; CalculateTotals() {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; tb = gv.getElementsByTagName(&lt;span class="str"&gt;"input"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; lb = gv.getElementsByTagName(&lt;span class="str"&gt;"span"&lt;/span&gt;);

            &lt;span class="kwrd"&gt;var&lt;/span&gt; sub = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; total = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexQ = 1;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexP = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; price = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; qty = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; totalQty = 0;

            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; tb.length; i++) {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].type == &lt;span class="str"&gt;"text"&lt;/span&gt;) {
                    ValidateNumber(tb[i]);

                    price = lb[indexP].innerHTML.replace(&lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;).replace(&lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);
                    sub = parseFloat(price) * parseFloat(tb[i].value);
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(sub)) {
                        lb[i + indexQ].innerHTML = &lt;span class="str"&gt;"0.00"&lt;/span&gt;;
                        sub = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        lb[i + indexQ].innerHTML = FormatToMoney(sub, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;); ;
                    }
                   
                    indexQ++;
                    indexP = indexP + 2;

                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(tb[i].value) || tb[i].value == &lt;span class="str"&gt;""&lt;/span&gt;) {
                        qty = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        qty = tb[i].value;
                    }
 
                    totalQty += parseInt(qty);
                    total += parseFloat(sub);
                }
            }

            lb[lb.length - 2].innerHTML = totalQty;
            lb[lb.length - 1].innerHTML = FormatToMoney(total, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;);
        }

        &lt;span class="kwrd"&gt;function&lt;/span&gt; ValidateNumber(o) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (o.value.length &amp;gt; 0) {
                o.value = o.value.replace(/[^\d]+/g, &lt;span class="str"&gt;''&lt;/span&gt;); &lt;span class="rem"&gt;//Allow only whole numbers&lt;/span&gt;
            }
        }
        &lt;span class="kwrd"&gt;function&lt;/span&gt; isThousands(position) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Math.floor(position / 3) * 3 == position) &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;
        };

        &lt;span class="kwrd"&gt;function&lt;/span&gt; FormatToMoney(theNumber, theCurrency, theThousands, theDecimal) {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theDecimalDigits = Math.round((theNumber * 100) - (Math.floor(theNumber) * 100));
            theDecimalDigits = &lt;span class="str"&gt;""&lt;/span&gt; + (theDecimalDigits + &lt;span class="str"&gt;"0"&lt;/span&gt;).substring(0, 2);
            theNumber = &lt;span class="str"&gt;""&lt;/span&gt; + Math.floor(theNumber);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theOutput = theCurrency;
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (x = 0; x &amp;lt; theNumber.length; x++) {
                theOutput += theNumber.substring(x, x + 1);
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (isThousands(theNumber.length - x - 1) &amp;amp;&amp;amp; (theNumber.length - x - 1 != 0)) {
                    theOutput += theThousands;
                };
            };
            theOutput += theDecimal + theDecimalDigits;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; theOutput;
        } 
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="form1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;  &lt;span class="attr"&gt;ShowFooter&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Description"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Description"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Price"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLPrice"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;='&amp;lt;%# Eval("Price","{0:C}") %&amp;gt;'&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Qty:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Quantity"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTQty"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;onkeyup&lt;/span&gt;&lt;span class="kwrd"&gt;="CalculateTotals();"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLQtyTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Font-Bold&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Blue"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;&lt;span class="attr"&gt;&amp;amp;nbsp;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Amount:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Sub-Total"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLSubTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Font-Bold&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here's the output below when you run it on the page: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc5.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d87cb647-74e2-4eb2-ba78-ccb23e5ff88a" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143066.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---displaying-quantity-total.aspx</guid>
            <pubDate>Thu, 09 Dec 2010 09:54:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143066.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---displaying-quantity-total.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143066.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143066.aspx</trackback:ping>
        </item>
        <item>
            <title>FAQ: GridView Calculation with JavaScript - Formatting and Validation</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---formatting-and-validation.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;In my previous post &lt;/span&gt;&lt;/span&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt; we've talked about how to calculate the sub-totals and grand total in GridView using JavaScript. In this post I'm going take more step further and will demonstrate how are we going to format the totals into a currency and how to validate the input that would only allow you to enter a whole number in the quantity TextBox.        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here are the code blocks below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;ASPX Source:&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;        &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;div style="width: 600px; overflow: auto"&gt;   &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span class="kwrd"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      
        &lt;span class="kwrd"&gt;function&lt;/span&gt; CalculateTotals() {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; tb = gv.getElementsByTagName(&lt;span class="str"&gt;"input"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; lb = gv.getElementsByTagName(&lt;span class="str"&gt;"span"&lt;/span&gt;);

            &lt;span class="kwrd"&gt;var&lt;/span&gt; sub = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; total = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexQ = 1;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexP = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; price = 0;

            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; tb.length; i++) {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].type == &lt;span class="str"&gt;"text"&lt;/span&gt;) {
                    ValidateNumber(tb[i]);

                    price = lb[indexP].innerHTML.replace(&lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;).replace(&lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;""&lt;/span&gt;);
                    sub = parseFloat(price) * parseFloat(tb[i].value);
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(sub)) {
                        lb[i + indexQ].innerHTML = &lt;span class="str"&gt;"0.00"&lt;/span&gt;;
                        sub = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        lb[i + indexQ].innerHTML = FormatToMoney(sub, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;); ;
                    }
                   
                    indexQ++;
                    indexP = indexP + 2;

                    total += parseFloat(sub);
                }
            }

            lb[lb.length - 1].innerHTML = FormatToMoney(total, &lt;span class="str"&gt;"$"&lt;/span&gt;, &lt;span class="str"&gt;","&lt;/span&gt;, &lt;span class="str"&gt;"."&lt;/span&gt;);
        }

        &lt;span class="kwrd"&gt;function&lt;/span&gt; ValidateNumber(o) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (o.value.length &amp;gt; 0) {
                o.value = o.value.replace(/[^\d]+/g, &lt;span class="str"&gt;''&lt;/span&gt;); &lt;span class="rem"&gt;//Allow only whole numbers&lt;/span&gt;
            }
        }
        &lt;span class="kwrd"&gt;function&lt;/span&gt; isThousands(position) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (Math.floor(position / 3) * 3 == position) &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;
        };

        &lt;span class="kwrd"&gt;function&lt;/span&gt; FormatToMoney(theNumber, theCurrency, theThousands, theDecimal) {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theDecimalDigits = Math.round((theNumber * 100) - (Math.floor(theNumber) * 100));
            theDecimalDigits = &lt;span class="str"&gt;""&lt;/span&gt; + (theDecimalDigits + &lt;span class="str"&gt;"0"&lt;/span&gt;).substring(0, 2);
            theNumber = &lt;span class="str"&gt;""&lt;/span&gt; + Math.floor(theNumber);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; theOutput = theCurrency;
            &lt;span class="kwrd"&gt;for&lt;/span&gt; (x = 0; x &amp;lt; theNumber.length; x++) {
                theOutput += theNumber.substring(x, x + 1);
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (isThousands(theNumber.length - x - 1) &amp;amp;&amp;amp; (theNumber.length - x - 1 != 0)) {
                    theOutput += theThousands;
                };
            };
            theOutput += theDecimal + theDecimalDigits;
            &lt;span class="kwrd"&gt;return&lt;/span&gt; theOutput;
        } 
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;="form1"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;  &lt;span class="attr"&gt;ShowFooter&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Description"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Description"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Price"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLPrice"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;='&amp;lt;%# Eval("Price","{0:C}") %&amp;gt;'&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Quantity"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTQty"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;onkeyup&lt;/span&gt;&lt;span class="kwrd"&gt;="CalculateTotals();"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Amount:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Sub-Total"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLSubTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt; &lt;span class="attr"&gt;Font-Bold&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="0.00"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Code Behind Source:&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;div style="width: 600px; overflow: auto"&gt;
  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; GridCalculation : System.Web.UI.Page
{
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BindDummyDataToGrid() {

            DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();
            DataRow dr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Description"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Price"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;decimal&lt;/span&gt;)));

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 1;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Nike"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"1000"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 2;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Converse"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"800"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 3;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Adidas"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"500"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 4;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Reebok"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"750"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 5;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Vans"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"1100"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 6;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Fila"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"200"&lt;/span&gt;;
            dt.Rows.Add(dr);


            &lt;span class="rem"&gt;//Bind the Gridview&lt;/span&gt;
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }

        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack) {
                BindDummyDataToGrid();
            }
        }
 }&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Running the code above will display something like this: &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;On initial load 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc3.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;After entering the quantity in the TextBox 
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc4.jpg" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6f8e9d50-46bf-4171-8228-da38ceb1f4aa" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ADO.NET" rel="tag"&gt;ADO.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143065.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---formatting-and-validation.aspx</guid>
            <pubDate>Thu, 09 Dec 2010 09:17:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143065.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/12/09/faq-gridview-calculation-with-javascript---formatting-and-validation.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143065.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143065.aspx</trackback:ping>
        </item>
        <item>
            <title>FAQ: GridView Calculation with JavaScript</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;In my previous post I wrote a simple demo on how to &lt;/span&gt;&lt;/span&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2009/06/01/faq-calculate-totals-in-gridview-and-display-it-in-footer.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Calculate Totals in GridView and Display it in the Footer&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;. Basically what it does is it calculates the total amount by typing into the TextBox and display the grand total in the footer of the GridView and basically it was a server side implemenation.  Many users in the forums are asking how to do the same thing without postbacks and how to calculate both amount and total amount together.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;In this post I will demonstrate how to do this using JavaScript. To get started let's go ahead and set up the form. Just for the simplicity of this demo I just set up the form like this:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt; &lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="GridView1"&lt;/span&gt;  &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;  &lt;span class="attr"&gt;ShowFooter&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="attr"&gt;AutoGenerateColumns&lt;/span&gt;&lt;span class="kwrd"&gt;="false"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="RowNumber"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Row Number"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:BoundField&lt;/span&gt; &lt;span class="attr"&gt;DataField&lt;/span&gt;&lt;span class="kwrd"&gt;="Description"&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Description"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Item Price"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLPrice"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;='&amp;lt;%# Eval("Price") %&amp;gt;'&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Quantity"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTQty"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Total Amount:&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;b&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt; &lt;span class="attr"&gt;HeaderText&lt;/span&gt;&lt;span class="kwrd"&gt;="Sub-Total"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLSubTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="LBLTotal"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;ForeColor&lt;/span&gt;&lt;span class="kwrd"&gt;="Green"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Label&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;FooterTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TemplateField&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;Columns&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:gridview&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;As you can see there's no fancy about the mark up above. It just a standard GridView with BoundFields and TemplateFields on it. Now just for the purpose of this demo I just use a dummy data for populating the GridView. Here's the code below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; GridCalculation : System.Web.UI.Page
    {
        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; BindDummyDataToGrid() {

            DataTable dt = &lt;span class="kwrd"&gt;new&lt;/span&gt; DataTable();
            DataRow dr = &lt;span class="kwrd"&gt;null&lt;/span&gt;;

            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Description"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));
            dt.Columns.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; DataColumn(&lt;span class="str"&gt;"Price"&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(&lt;span class="kwrd"&gt;string&lt;/span&gt;)));

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 1;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Nike"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"1000"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 2;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Converse"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"800"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 3;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Adidas"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"500"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 4;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Reebok"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"750"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 5;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Vans"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"1100"&lt;/span&gt;;
            dt.Rows.Add(dr);

            dr = dt.NewRow();
            dr[&lt;span class="str"&gt;"RowNumber"&lt;/span&gt;] = 6;
            dr[&lt;span class="str"&gt;"Description"&lt;/span&gt;] = &lt;span class="str"&gt;"Fila"&lt;/span&gt;;
            dr[&lt;span class="str"&gt;"Price"&lt;/span&gt;] = &lt;span class="str"&gt;"200"&lt;/span&gt;;
            dt.Rows.Add(dr);


            &lt;span class="rem"&gt;//Bind the Gridview&lt;/span&gt;
            GridView1.DataSource = dt;
            GridView1.DataBind();

        }

        &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e) {
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (!IsPostBack) {
                BindDummyDataToGrid();
            }
        }
    }&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Now try to run the page. The output should look something like below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc1.jpg" width="534" height="236" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;The Client-Side Calculation&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here's the code for the GridView calculation:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="text/javascript"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      
        &lt;span class="kwrd"&gt;function&lt;/span&gt; CalculateTotals() {
            &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= GridView1.ClientID %&amp;gt;"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; tb = gv.getElementsByTagName(&lt;span class="str"&gt;"input"&lt;/span&gt;);
            &lt;span class="kwrd"&gt;var&lt;/span&gt; lb = gv.getElementsByTagName(&lt;span class="str"&gt;"span"&lt;/span&gt;);

            &lt;span class="kwrd"&gt;var&lt;/span&gt; sub = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; total = 0;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexQ = 1;
            &lt;span class="kwrd"&gt;var&lt;/span&gt; indexP = 0;

            &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; tb.length; i++) {
                &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].type == &lt;span class="str"&gt;"text"&lt;/span&gt;) {
                    sub = parseFloat(lb[indexP].innerHTML) * parseFloat(tb[i].value);
                    &lt;span class="kwrd"&gt;if&lt;/span&gt; (isNaN(sub)) {
                        lb[i + indexQ].innerHTML = &lt;span class="str"&gt;""&lt;/span&gt;;
                        sub = 0;
                    }
                    &lt;span class="kwrd"&gt;else&lt;/span&gt; {
                        lb[i + indexQ].innerHTML = sub;
                    }
                   
                    indexQ++;
                    indexP = indexP + 2;

                    total += parseFloat(sub);
                }
            }
            lb[lb.length -1].innerHTML = total;
        }
 
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;script&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;The code above calculates the sub-total by multiplying the price and the quantity and at the same time calculates the total amount  by adding the sub-total values. Now you can simply call the JavaScript function above like this:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
     &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="TXTQty"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span style="background-color: rgb(255,204,0)"&gt;&lt;span class="attr"&gt;onkeyup&lt;/span&gt;&lt;span class="kwrd"&gt;="CalculateTotals();"&lt;/span&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:TextBox&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;ItemTemplate&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Running the code above will display something like below:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/gvJSCalc2.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:868eee58-b720-4cf5-b0ae-7f989603c2ff" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TipsTricks" rel="tag"&gt;TipsTricks&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/143046.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx</guid>
            <pubDate>Wed, 08 Dec 2010 14:29:10 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/143046.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/12/08/faq-gridview-calculation-with-javascript.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/143046.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/143046.aspx</trackback:ping>
        </item>
        <item>
            <title>Tip/Trick: Fixing GridLines Border Color in IE8</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/10/07/tiptrick-fixing-gridlines-border-color-in-ie8.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;There are times that we need to set the border color of the GridView just like in my case, I was told to set the border color of GridView to a particular color instead of the default black. What I did is simply use the BorderColor property of the GridView and set it declaratively like below:       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&amp;lt;asp:GridView ID="GridView1" runat="server" GridLines="Both" BorderColor="Red"&amp;gt;&amp;lt;asp:/GridView&amp;gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Here's how it looks when we run that one in the browser.       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Firefox 3.5       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/GridLinesFF.jpg" width="426" height="165" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Safari 5       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/GridLinesSaf.jpg" width="429" height="215" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;IE 8       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;img alt="" src="/images/geekswithblogs_net/dotNETvinz/GridLinesIE.jpg" width="441" height="160" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Noticed that in IE8 it looks stranged.This is because in IE8 the declarative BorderColor attribute only adds an inline style declaration which only applies to the table itself and not on individual cells.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(51,153,102)"&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;The Workaround&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Option 1: Using CSS&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(128,0,0)"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&amp;lt;html xmlns="&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(128,0,0)"&gt;&lt;a href="http://www.w3.org/1999/xhtml" target="_blank"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;http://www.w3.org/1999/xhtml&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;" &amp;gt;         &lt;br /&gt;&amp;lt;head runat="server"&amp;gt;          &lt;br /&gt;    &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;          &lt;br /&gt;    &amp;lt;style type="text/css"&amp;gt;          &lt;br /&gt;       &lt;span style="color: rgb(255,0,0)"&gt; table.grid{           &lt;br /&gt;           border-collapse:collapse;            &lt;br /&gt;           border:solid 1px Red;            &lt;br /&gt;        }            &lt;br /&gt;        table.grid td, th{            &lt;br /&gt;           border:solid 1px Red;            &lt;br /&gt;        }&lt;/span&gt;          &lt;br /&gt;    &amp;lt;/style&amp;gt;          &lt;br /&gt;&amp;lt;/head&amp;gt;          &lt;br /&gt;&amp;lt;body&amp;gt;          &lt;br /&gt;    &amp;lt;form id="form1" runat="server"&amp;gt;          &lt;br /&gt;    &amp;lt;asp:GridView ID="GridView1" runat="server" GridLines="Both" &lt;span style="color: rgb(255,0,0)"&gt;CssClass="grid"&lt;/span&gt;&amp;gt;          &lt;br /&gt;    &amp;lt;/asp:GridView&amp;gt;          &lt;br /&gt;    &amp;lt;/form&amp;gt;          &lt;br /&gt;&amp;lt;/body&amp;gt;          &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Option 2: Adding BorderColor Attribute at the Code-Behind &lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;protected void Page_Load(object sender, EventArgs e){         &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;      GridView1.Attributes.Add("bordercolor","Red");         &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(0,0,255)"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;       &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope someone find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:044e7911-9a4f-4d7a-ae8a-807ae6d51ee5" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TipsTricks" rel="tag"&gt;TipsTricks&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;&lt;/div&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/142175.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/10/07/tiptrick-fixing-gridlines-border-color-in-ie8.aspx</guid>
            <pubDate>Thu, 07 Oct 2010 12:38:29 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/142175.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/10/07/tiptrick-fixing-gridlines-border-color-in-ie8.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/142175.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/142175.aspx</trackback:ping>
        </item>
        <item>
            <title>Adding Dynamic Rows in GridView with TextBox and DropDownList - Validation</title>
            <link>http://geekswithblogs.net/dotNETvinz/archive/2010/08/05/adding-dynamic-rows-in-gridview-with-textbox-and-dropdownlist-again.aspx</link>
            <description>&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;In my previous post &lt;/span&gt;&lt;/span&gt;&lt;a href="http://geekswithblogs.net/dotNETvinz/archive/2010/08/03/adding-dynamic-rows-in-gridview-with-textbox-and-dropdownlist.aspx"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;here&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt; I have demonstrated how to add dynamic rows in Gridview with a combination of TextBox and DropDownList. Just in case you need to validate empty TextBox values  before adding a new row to the GridView then here's a JavaScript function that you can use for validation:  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;span style="font-size: small"&gt;&lt;/span&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;  &lt;pre class="csharpcode"&gt;function ValidateEmptyValue() { 
    &lt;span class="kwrd"&gt;var&lt;/span&gt; gv = document.getElementById(&lt;span class="str"&gt;"&amp;lt;%= Gridview1.ClientID %&amp;gt;"&lt;/span&gt;); 
    &lt;span class="kwrd"&gt;var&lt;/span&gt; tb = gv.getElementsByTagName(&lt;span class="str"&gt;"input"&lt;/span&gt;); 
            
    &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;var&lt;/span&gt; i = 0; i &amp;lt; tb.length; i++) { 
        &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].type == &lt;span class="str"&gt;"text"&lt;/span&gt;) { 
            &lt;span class="kwrd"&gt;if&lt;/span&gt; (tb[i].value &amp;lt; 1) { 
                alert(&lt;span class="str"&gt;"Field cannot be blank!"&lt;/span&gt;); 
                &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;; 
            } 
        } 
    } 
    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;; 
}&lt;/pre&gt;

&lt;p&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;Then at OnClientClick event of the Add New Button, you can simply call the JavaScript function above like below:  &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;

&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Button&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;="ButtonAdd"&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;="server"&lt;/span&gt; &lt;span class="attr"&gt;Text&lt;/span&gt;&lt;span class="kwrd"&gt;="Add New Row"&lt;/span&gt;
                           &lt;span class="attr"&gt;onclick&lt;/span&gt;&lt;span class="kwrd"&gt;="ButtonAdd_Click"&lt;/span&gt; 
                           &lt;span class="attr"&gt;OnClientClick&lt;/span&gt;&lt;span class="kwrd"&gt;="return ValidateEmptyValue();"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;  &lt;/pre&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;That's it! I hope you'll find this post useful!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: tahoma"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;&lt;o:p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family: tahoma"&gt;&lt;span style="line-height: 115%; font-size: 10pt"&gt;&lt;o:p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ee0626ab-589e-4cc3-801f-c824258f3009" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/GridView" rel="tag"&gt;GridView&lt;/a&gt;,&lt;a href="http://technorati.com/tags/JavaScript" rel="tag"&gt;JavaScript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dynamic+Controls" rel="tag"&gt;Dynamic Controls&lt;/a&gt;&lt;/div&gt;

&lt;p&gt;&lt;span style="font-size: small"&gt;&lt;span style="font-family: tahoma"&gt;
      &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;img src="http://geekswithblogs.net/dotNETvinz/aggbug/141195.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Vincent Maverick Durano</dc:creator>
            <guid>http://geekswithblogs.net/dotNETvinz/archive/2010/08/05/adding-dynamic-rows-in-gridview-with-textbox-and-dropdownlist-again.aspx</guid>
            <pubDate>Thu, 05 Aug 2010 08:10:35 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/dotNETvinz/comments/141195.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/dotNETvinz/archive/2010/08/05/adding-dynamic-rows-in-gridview-with-textbox-and-dropdownlist-again.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/dotNETvinz/comments/commentRss/141195.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/dotNETvinz/services/trackbacks/141195.aspx</trackback:ping>
        </item>
    </channel>
</rss>
