2011-01-15 7 views
0

私のコードであなたの助けをしたいと思います。 私は、このソースコードグリッドビューの列の合計を見つける方法

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ShowLand.aspx.cs" Inherits="ShowLand" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body MS_POSITIONING="GridLayout" bgColor="#FFF8DC" aLink="#330066"> 
    <form id="form1" runat="server"> 
<asp:Label id="Label6" 
     style="Z-INDEX: 101; LEFT: 176px; POSITION: absolute; TOP: 8px; text-align: center;" runat="server" 
       Font-Size="X-Large" Font-Italic="True" Font-Underline="True" Width="608px" ForeColor="Navy" 
       Font-Bold="True">Land For Sale</asp:Label> 
    <br /> 
    <br /> 
    <br /> 
<div> 
     <asp:GridView ID="gridView1" runat="server" CellPadding="4" ForeColor="#333333" 
      GridLines="None"> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
      <Columns> 
       <asp:TemplateField> 
        <ItemTemplate> 
         <asp:CheckBox ID="chkSelect" runat="server" /> 
         <asp:HiddenField ID="hdValue" runat="server" Value='<%#Eval("ID") %>' /> 
        </ItemTemplate> 
       </asp:TemplateField> 
      </Columns> 
      <EditRowStyle BackColor="#999999" /> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
      <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
      <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
      <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
     </asp:GridView> 
    </div> 
    <div> 
     <asp:Button ID="btnMove" runat="server" Text="Add To Cart" OnClick="btnMove_Click" /> 
    </div> 
    <div> 

     <asp:GridView ID="gridView2" runat="server" CellPadding="4" ForeColor="#333333" 
      GridLines="None"> 
      <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> 
     <Columns> 
     <asp:TemplateField HeaderText="Qty"> 
      <ItemTemplate> 
      <asp:TextBox ID="tbQty" runat="server" Width="25px" 
      MaxLength="3" /> 
      </ItemTemplate> 
      <ItemStyle Width="25px" HorizontalAlign="Center"/> 
     </asp:TemplateField> 
     </Columns> 
      <EditRowStyle BackColor="#999999" /> 
      <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /> 
      <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /> 
      <RowStyle BackColor="#F7F6F3" ForeColor="#333333" /> 
      <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /> 
      <SortedAscendingCellStyle BackColor="#E9E7E2" /> 
      <SortedAscendingHeaderStyle BackColor="#506C8C" /> 
      <SortedDescendingCellStyle BackColor="#FFFDF8" /> 
      <SortedDescendingHeaderStyle BackColor="#6F8DAE" /> 
     </asp:GridView> 
    </div> 
    <br /> 
    <br /> 
    <br /> 
    </form> 
</body> 

</html> 

を書き、また、私は、ユーザーが彼の選択チェックボックスで選択でき

このコードで
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Data; 

public partial class ShowLand : System.Web.UI.Page 
{ 
    const string key = "MyDataSource3"; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      BindGridView(); 
     } 

    } 
    private void BindGridView() 
    { 
     if (Session[key] == null) 
     { 
      gridView1.DataSource = GetDataSource(); 
      gridView1.DataBind(); 
     } 
     else 
     { 
      gridView1.DataSource = (DataTable)Session[key]; 
      gridView1.DataBind(); 
     } 

    } 
    protected DataTable GetDataSource() 
    { 
     try 
     { 
      DataTable dt = new DataTable(); 
      dt = new DataTable(); 
      dt.Columns.Add("ID", typeof(int)).AutoIncrement = true; 
      dt.Columns.Add("Name", typeof(string)); 
      dt.Columns.Add("Price(Grouch)/Hectares", typeof(float)); 
      DataColumn[] keys = new DataColumn[2]; 
      keys[0] = dt.Columns["ID"]; 
      dt.PrimaryKey = keys; 
      dt.Rows.Add("1", "Seaside Location", 1.5); 
      dt.Rows.Add("2", "Arable Land", 0.1); 
      dt.Rows.Add("3", "Foothills of the mountains", 1.5); 
      dt.Rows.Add("4", "Industrial Land", 0.1); 
      dt.Rows.Add("5", "Rolling Farmland", 0.5); 
      Session[key] = dt; 
      return dt; 

     } 
     catch 
     { 
      return null; 
     } 
    } 
    protected void btnMove_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      DataTable dtMain = Session[key] as DataTable; 
      //copy the schema of source table 
      DataTable dtClone = dtMain.Clone(); 
      foreach (GridViewRow gv in gridView1.Rows) 
      { 
       CheckBox chk = gv.FindControl("chkSelect") as CheckBox; 
       HiddenField hdValue = gv.FindControl("hdValue") as HiddenField; 
       if (chk.Checked) 
       { 
        //get only the rows you want 
        DataRow[] results = dtMain.Select("ID=" + hdValue.Value + ""); 
        //populate new destination table 
        foreach (DataRow dr in results) 
        { 
         dtClone.ImportRow(dr); 
        } 
       } 
       gridView2.DataSource = dtClone; 
       gridView2.DataBind(); 
      } 
     } 
     catch 
     { 
      BindGridView(); 
     } 

    } 
} 

ShowLand.aspx.csにとして、このようにこれらの2 gridviewsを作成しましたボタンを2番目のgridview.Alsoにこの選択肢を追加するには、テキストボックスに量を与えることができます。 数量を価格列に乗算する方法を知りたいのですが、どうすればいいですか?

答えて

0

グリッドビューをループしている間は、その行とそのセルにアクセスできます。したがって、それぞれのセルからの数量と価格の値が計算されます。 gv.Cells [2]の.text

は、このチェック:ところでCalculate Price Total

を、私は再びあなたのコードを見て、数量の列が表示されませんか?

0

それはあなたがGridViewのこの

 datatable.Compute("Sum(ColumnName)","") 

のように、我々はここので、多くの時間がここに保存されたループのために使用する必要はありませんのでことを結合される場所からのDataTableから合計を計算するのが最善でしょう。

関連する問題