向gridview添加多行 [英] add multiple rows to gridview

查看:73
本文介绍了向gridview添加多行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,先生.如果有人知道正确的解决方案. 对我来说很紧急.

我的要求是我有15个boundfields的gridview.在网格外面,在页面上我有15个文本框.和一个提交按钮.每当我在文本框中插入一些文本,然后按提交按钮.这些值应显示在gridview上.现在我想在gridview中插入100行,但是只插入一条记录.每当我输入第二条记录时,它就会覆盖第一条记录.如果有人知道,请先生帮帮我.

这对我来说非常紧急. 3天后我一直感到挣扎.
请帮助我.任何一个.
我的代码很低.

hello sir. if any body know the correct solution plz helpme. it is very urgent to me.

my requirement is i have a gridview with 15 boundfields. out side the grid and on the page i have 15 textboxes. and one submit button. when ever i am inserting some text in the textboxes and press submit button. these values should be displayed on the gridview. now i want to insert 100 rows in the gridview, but only one record is inserting. when ever i am entering second record it is overriding first record. if anybody know plz help me sir.

it is very urgent to me. i am struggled from 3 days.
plz plz help me. any one.
my code is helow.

<asp:GridView ID="GVProductOrder" runat="server" AutoGenerateColumns="false"

                                               GridLines="Vertical" Height="200" Width="1050">
                                               <HeaderStyle CssClass="HeaderStyleGrid" />
                                               <Columns>
                                                   <asp:BoundField DataField="ItemCode" HeaderText="Item Code" HeaderStyle-Width="150px"/>

                                                   <asp:BoundField DataField="ItemName" HeaderText="Item Name" HeaderStyle-Width="500px"/>
                                                   <asp:BoundField DataField="EanCode" HeaderText="Ean Code" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="Cost" HeaderText="Cost" HeaderStyle-Width="150px"/>
                                                   <asp:BoundField DataField="MRP" HeaderText="MRP" HeaderStyle-Width="150px"/>
                                                   <asp:BoundField DataField="SP" HeaderText="SP" HeaderStyle-Width="150px"/>
                                                   <asp:BoundField DataField="MBQ" HeaderText="MBQ" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="Quantity" HeaderText="Quantity" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="FreeQty" HeaderText="Free Qty" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="FixedDisc" HeaderText="Fixed Disc" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="Tax" HeaderText="Tax" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="Value" HeaderText="Value" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="OnOrder" HeaderText="On Order" HeaderStyle-Width="100px"/>
                                                   <asp:BoundField DataField="Remarks" HeaderText="Remarks" HeaderStyle-Width="500px"/>
                                                   <asp:BoundField DataField="Type" HeaderText="Type" HeaderStyle-Width="100px"/>


using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class PurchaseOrder1 : System.Web.UI.Page
{
    
    DataTable dt = new DataTable();
    protected void GVProductOrderBind()
    {
        ViewState["GVTable"]=dt;
        GVProductOrder.DataSource = dt;
        GVProductOrder.DataBind();
        
        
    }
    protected void InsertToGrid()
    {
        
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            DataRow dr = null;
            dt.Columns.Add("ItemCode");
            dt.Columns.Add("ItemName");
            dt.Columns.Add("EanCode");
            dt.Columns.Add("Cost");
            dt.Columns.Add("MRP");
            dt.Columns.Add("SP");
            dt.Columns.Add("MBQ");
            dt.Columns.Add("Quantity");
            dt.Columns.Add("FreeQty");
            dt.Columns.Add("FixedDisc");
            dt.Columns.Add("Tax");
            dt.Columns.Add("Value");
            dt.Columns.Add("OnOrder");
            dt.Columns.Add("Remarks");
            dt.Columns.Add("Type");
            dr = dt.NewRow();
            dt.Rows.Add(dr);
            GVProductOrderBind();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        
    }
    protected void BtnClose_Click(object sender, EventArgs e)
    {
        Response .Redirect ("~/Welcome.aspx");
    }
    protected void BtnSave_Click(object sender, EventArgs e)
    {      
        try
        {
            if (ViewState["GVTable"] != null)
            {
                DataTable dtCurrentTable = (DataTable)ViewState["GVTable"];
                DataRow drCurrentRow = null;
                if (dtCurrentTable.Rows.Count > 0)
                {
                    for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
                    {
                        drCurrentRow = dtCurrentTable.NewRow();
                       
                        drCurrentRow["ItemCode"] = TxtItemCode.Text;
                        drCurrentRow["ItemName"] = TxtItemDescription.Text;
                        drCurrentRow["EanCode"] = TxtEanCode.Text;
                        drCurrentRow["Cost"] = TxtCP.Text;
                        drCurrentRow["MRP"] = TxtMRP.Text;
                        drCurrentRow["SP"] = TxtSP.Text;
                        drCurrentRow["MBQ"] = TxtACP.Text;
                        drCurrentRow["Quantity"] = TxtQty.Text;
                        drCurrentRow["FreeQty"] = TxtFreeQty.Text;
                        drCurrentRow["FixedDisc"] = TxtDiscPercentage.Text;
                        drCurrentRow["Tax"] = TxtTaxPercentage.Text;
                        drCurrentRow["Value"] = TxtValue.Text;
                        drCurrentRow["OnOrder"] = TxtOnOrder.Text;
                        drCurrentRow["Remarks"] = TxtQOH.Text;
                        drCurrentRow["Type"] = TxtUOP.Text;
                    }
                    dtCurrentTable.Rows.Add(drCurrentRow);
                    //Store the current data to ViewState
                    ViewState["CurrentTable"] = dtCurrentTable;
                    //Rebind the Grid with the current data
                    GVProductOrder.DataSource = dtCurrentTable;
                    GVProductOrder.DataBind();
                }
            }
            else
            {
                Response.Write("ViewState is null");
            }
            SetPreviousData();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        
    }
    private void SetPreviousData()
    {
        //int rowIndex = 0;
        if (ViewState["CurrentTable"] != null)
        {
            DataTable dt = (DataTable)ViewState["CurrentTable"];
            if (dt.Rows.Count > 0)
            {
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    //TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
                    //TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");
                    //TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");
                    //box1.Text = dt.Rows[i]["ItemCode"].ToString();
                    //box2.Text = dt.Rows[i]["Column2"].ToString();
                    //box3.Text = dt.Rows[i]["Column3"].ToString();
                    DataRow drCurrentRow = dt.NewRow();
                    drCurrentRow["ItemCode"] = TxtItemCode.Text;
                    drCurrentRow["ItemName"] = TxtItemDescription.Text;
                    drCurrentRow["EanCode"] = TxtEanCode.Text;
                    drCurrentRow["Cost"] = TxtCP.Text;
                    drCurrentRow["MRP"] = TxtMRP.Text;
                    drCurrentRow["SP"] = TxtSP.Text;
                    drCurrentRow["MBQ"] = TxtACP.Text;
                    drCurrentRow["Quantity"] = TxtQty.Text;
                    drCurrentRow["FreeQty"] = TxtFreeQty.Text;
                    drCurrentRow["FixedDisc"] = TxtDiscPercentage.Text;
                    drCurrentRow["Tax"] = TxtTaxPercentage.Text;
                    drCurrentRow["Value"] = TxtValue.Text;
                    drCurrentRow["OnOrder"] = TxtOnOrder.Text;
                    drCurrentRow["Remarks"] = TxtQOH.Text;
                    drCurrentRow["Type"] = TxtUOP.Text;
                    //rowIndex++;
                }
            }
        }
    }
}

推荐答案

您在哪里称"SetPreviousData"?
同样,"SetPreviousData"没有将新行添加到dataTable的代码.
ViewSTate ["GVTable"]和ViewState ["CurrentTable"]之间有什么关联?
调试代码,重点放在将DataTable置于视图状态和为网格设置dataSource的区域.
Where are you calling "SetPreviousData"?
also "SetPreviousData" does not have the code to add the new row to dataTable.
And what is the correlation between ViewSTate["GVTable"] and ViewState["CurrentTable"]?
Debug the code giving special emphasis on regions where you are putting DataTable to viewstate and where you are setting dataSource for the grid.


这篇关于向gridview添加多行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆