gridview in asp.net

i have to display data in gridview asp.net 2.0.problem is that one of my column contains text box in gird view?i have to update another column's value of gird view based on text box 's value of gird column, without sending it to server?lest we have three columns in grid view current price, discount (text box),and cusomter price .here suppose current price is 100 and user entering 10% discount then it should show 90 in customer price list without sending request to server or any update button event?i m using asp.net 2.0, c#, microsoft access?
<asp:GridView ID="GVQuote" runat="server" AutoGenerateColumns="False" BorderWidth="0"
                                                        CellPadding="2" CellSpacing="1" >
                                                        <HeaderStyle CssClass="tableHeader" />
                                                        <RowStyle CssClass="GVCell" />
                                                        <AlternatingRowStyle CssClass="AlterNatingRow" />
                                                        <Columns>
                                                         <asp:TemplateField>
                                                    <HeaderTemplate>
	                                                    Select<input type="checkbox" id="checkBoxParent" runat="server" name="checkBoxParent" onclick="ParentChecked(this);"/>
                                                    </HeaderTemplate>
                                                    <ItemTemplate>
                                                        <input type="checkbox"  runat="server" id="chk" name="chkBarcode" value='<%#DataBinder.Eval(Container.DataItem,"fld_ItemID")%>' />
	                                                </ItemTemplate>
                                                    <ItemStyle HorizontalAlign="Center" />
                                                    </asp:TemplateField>
                                                            
                                                             
                                                            <asp:boundfield datafield="" headertext="Cat#"   ItemStyle-HorizontalAlign="left"   />
                                                            <asp:boundfield datafield="" headertext="Description"   ItemStyle-HorizontalAlign="left"   />
                                                             <asp:boundfield datafield="" headertext="Recommended Units"   ItemStyle-HorizontalAlign="left"   />                                                       
                                                      
                                                         <asp:TemplateField HeaderText="Units Requested">
                                                         <ItemTemplate>
                                                         <asp:TextBox ID="txtUnitRqstd"  Width ="100px" Runat="Server" />
 
                                                        </ItemTemplate> 
                                                       </asp:TemplateField>
                                                        
                                                        
                                                        <asp:boundfield datafield=""  headertext="2008 Unit Price" DataFormatString="{0:MM/dd/yyyy}" HtmlEncode="false" /> 
                                                        <asp:TemplateField HeaderText="Discount">
                                                         <ItemTemplate>
                                                         <asp:TextBox ID="txtDiscount" Width ="100px" Runat="Server" />
 
                                                        </ItemTemplate> 
                                                       </asp:TemplateField>
                                                         <asp:TemplateField HeaderText="2008 Extended Price" >
                                                                <ItemTemplate>
                                                                   
                                                                </ItemTemplate>
                                                            </asp:TemplateField>
                                                                                                
                                                        </Columns>
                                                    </asp:GridView>

Open in new window

ajay1febAsked:
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

x
 
monarch_ilhanConnect With a Mentor Commented:
Do it with javascript.
Something like this may help you;
Assume you have template field like this
                        <asp:TemplateField>
                              <ItemTemplate>
                                    <asp:TextBox ID="txtCurrentPrice" runat="server" Text='<%#Eval("CurrentPrice")%>'></asp:TextBox>
                                    <asp:Label ID="lblCustomerPrice" runat="server" Text=""></asp:Label>
                                    <asp:TextBox ID="txtDiscount" runat="server" Text='<%#Eval("Discount")%>'></asp:TextBox>
                              </ItemTemplate>
                        </asp:TemplateField>


//On rowdatabound event of gridview
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                TextBox txtCurrentPrice = (TextBox)e.Row.FindControl("txtCurrentPrice");
                TextBox txtDiscount = (TextBox)e.Row.FindControl("txtDiscount");
                Label lblCustomerPrice = (Label)e.Row.FindControl("lblCustomerPrice");
                txtDiscount.Attributes.Add("onchange","CalcCustomerPrice('"+txtCurrentPrice.ClientID+"','"+txtDiscount.ClientID+"','"+lblCustomerPrice.ClientID+"')");

            }

And  on aspx page paste this script

    <script type="text/javascript">
    function CalcCustomerPrice(CurrentPriceCtrlID,DiscountCtrlID,CustomerCtrlID)
    {
      var CurPrc=document.getElementById(CurrentPriceCtrlID);
      var Disc=document.getElementById(DiscountCtrlID);
      var CustomerPrice=document.getElementById(CustomerCtrlID);
      CustomerPrice.innerHTML=CurPrc.value-((CurPrc.value*Disc.value)/100);
     
    }
    </script>

So when you change the discount field and leave the control (lost focus or on blur) you will see that it calculates new cust. price

Hope this help
0
 
ajay1febAuthor Commented:
your given code is not working here is my DataGirdView structure and code on aspx and code behind :

<tr>
                                                <td class="GridCellBorder" style="width: 100%">
                                                    <asp:GridView ID="GVQuote" AllowPaging ="true" AllowSorting ="true" runat="server" style="width:100%" AutoGenerateColumns="False" BorderWidth="0"
                                                        CellPadding="2" CellSpacing="1" Width="792px" PageSize="20" DataKeyNames="ItemID" OnPageIndexChanging="GVQuote_PageIndexChanging" >
                                                        <HeaderStyle CssClass="tableHeader" />
                                                        <RowStyle CssClass="GVCell" />
                                                        <AlternatingRowStyle CssClass="AlterNatingRow" />
                                                        <Columns>
                                                       
                                                           <asp:TemplateField  ItemStyle-HorizontalAlign="Center">                                                          
                                                                <ItemTemplate>
                                                                   <asp:CheckBox ID="chkSelect" runat="server"  value='<%#DataBinder.Eval(Container.DataItem,"ItemID")%>'/>
                                                                 </ItemTemplate>
                                                             </asp:TemplateField>
                                                             <asp:TemplateField HeaderText="ItemID"  Visible="False">
                                                            <ItemTemplate>
                                                        <asp:Label ID="lblItemID" runat="server" Text='<%# Eval("ItemID") %>' Width ="70px"></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>                                                                                                        
                                                           
                                                          <asp:TemplateField HeaderText="Cat#"  Visible="True">
                                                            <ItemTemplate>
                                                        <asp:Label ID="lblCatalogNo"   runat="server" Text='<%# Eval("CatalogNumber") %>' Width ="70px"></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>
                                                        <asp:TemplateField HeaderText="ProductType"  Visible="False">
                                                            <ItemTemplate>
                                                        <asp:Label ID="lblProductType" runat="server" Text='<%# Eval("productType") %>' Width ="70px"></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>  
                                                                                                           
                                                             <asp:TemplateField HeaderText="Description"  Visible="True">
                                                            <ItemTemplate >
                                                        <asp:Label ID="lblDescription" runat="server" Text='<%# Eval("Description") %>' Width ="300px"></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>
                                                           
                                                        <asp:TemplateField HeaderText="Recommended Units"   Visible="True">
                                                            <ItemTemplate>
                                                        <asp:Label ID="lblRecommededUnits"  runat="server"  Text='<%# Eval("RecommededUnits") %>' ></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>                                                    
                                                     
                                                        <asp:TemplateField HeaderText="List Price"  Visible="True">
                                                            <ItemTemplate>
                                                        <asp:Label ID="lblCurrentListPrice" runat="server" Text='<%# Eval("CurrentListPrice") %>' ></asp:Label >
                                                           </ItemTemplate>
                                                       </asp:TemplateField>                                                        
                                                                                                           
                                                       
                                                        <asp:TemplateField   HeaderText="Discount">
                                                         <ItemTemplate>
                                                         <asp:TextBox ID="txtDiscountOnItem" Width ="100px" Runat="Server" />
                                                        </ItemTemplate>
                                                       </asp:TemplateField>
                                                       <asp:TemplateField HeaderText="Sell Price">
                                                         <ItemTemplate>
                                                         <asp:Label  ID="lblSellPrice" Runat="Server" />                                                            
                                                         </ItemTemplate>
                                                     </asp:TemplateField>  
                                                      <asp:TemplateField HeaderText="Units Requested">
                                                         <ItemTemplate>
                                                             <asp:TextBox ID="txtUnitRqstd"  Width ="100px" Runat="Server" />
                                                         </ItemTemplate>
                                                     </asp:TemplateField>    
                                                         <asp:TemplateField HeaderText="Extended List Price" >
                                                                <ItemTemplate>
                                                                   <asp:Label  ID="lblExtendedListPrice" Runat="Server" />    
                                                                </ItemTemplate>
                                                         </asp:TemplateField>
                                                          <asp:TemplateField HeaderText="Extended Sell Price" >
                                                                <ItemTemplate>
                                                                   <asp:Label  ID="lblExtendedSellPrice" Runat="Server" />    
                                                                </ItemTemplate>
                                                         </asp:TemplateField>
                                                                                               
                                                        </Columns>
                                                    </asp:GridView>
                                                 
                                                </td>
                                                                                 
                                               
                                            </tr>

CODE ON ASPX :

function CalcSellPrice(CurrentPriceCtrlID,DiscountCtrlID,CustomerCtrlID)
    {
      var CurPrc=document.getElementById(CurrentPriceCtrlID);
      var Disc=document.getElementById(DiscountCtrlID);
      var SellPrice=document.getElementById(CustomerCtrlID);
      SellPrice.innerHTML=CurPrc.value-((CurPrc.value*Disc.value)/100);
     
    }
CODE ON ASPX.CS :

protected void  GVQuote_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
     
        Label lblCurrentListPrice = (Label)e.Row.FindControl("lblCurrentListPrice");
        TextBox txtDiscountOnItem = (TextBox)e.Row.FindControl("txtDiscountOnItem");
        Label lblSellPrice = (Label)e.Row.FindControl("lblSellPrice");
        txtDiscountOnItem.Attributes.Add("onchange", "CalcSellPrice('" + lblCurrentListPrice.ClientID + "','" + txtDiscountOnItem.ClientID + "','" + lblSellPrice.ClientID + "')");


    }  

}
0
All Courses

From novice to tech pro — start learning today.