开发者

multiply the gridview columns

开发者 https://www.devze.com 2023-02-04 07:11 出处:网络
I will post you my code and i will explain what i want to do <div> <div> <asp:GridView ID=\"gridView1\" runat=\"server\">

I will post you my code and i will explain what i want to do

<div>
<div>
    <asp:GridView ID="gridView1" runat="server">
        <Columns>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="chkSelect" runat="server" />
                    <asp:HiddenField ID="hdValue" runat="server" Value='<%#Eval("ID") %>' />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </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">
    <Columns>
    <asp:TemplateField HeaderText="Quantity">
        <ItemTemplate>
        <asp:TextBox ID="tbQty" runat="server" Width="25px"
        MaxLength="3" />
        </ItemTemplate>
        <ItemStyle Width="25px" HorizontalAlign="Center"/>
    </asp:TemplateField>
    </Columns>
    </asp:GridView>

</div>

<br />

<asp:Button ID="Button1" runat="server" Text="Find the total" />
<asp:Label ID="Label7" runat="server" Text="Total"></asp:Label>
<asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged"></asp:TextBox>
<br />
<br />
</div>

and the theo.aspx.cs

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 theo : System.Web.UI.Page
{
    const string key = "MyDataSource5";
    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();
            }
        }
       开发者_Python百科 catch
        {
            BindGridView();
        }

    }
}

In this code when i check for example 2 choices from gridview 1 and click the button add to cart then these 2 choices are moving to the second gridview. As you see,I have a textbox for the quantity. I would like when i give the quantity to multiply it with the price.With the button 'find the total' i want to give me the result in the text box.How can i do that?


one simple solution may be useful to you.

protected void Button1_Click(object sender, EventArgs e)
{
    int itemCount;
    decimal itemPrice, itemTotal;
    itemTotal = 0;
    itemCount = 0;
    itemPrice = 0;
    foreach(GridViewRow gridView2Row in gridView2.Rows)
    {
        TextBox tbCount = gridView2Row.Cells[0].Controls[1] as TextBox;
        itemCount = Convert.ToInt32(tbCount.Text);
        itemPrice = Convert.ToDecimal(gridView2Row.Cells[3].Text);
        itemTotal = itemTotal + (itemCount * itemPrice);

    }
    TextBox1.Text = itemTotal.ToString();
}
0

精彩评论

暂无评论...
验证码 换一张
取 消