无法更新gridview中的文本框值[c#asp.net]

时间:2018-01-22 05:40:32

标签: asp.net

在DataTable中获取旧值,我需要更新的新值。请帮帮我?

点击按钮更新

我的代码:

DataSet Ds = new DataSet();
string Query = "";

Query = "select Conv_0,Unit_0,Rate_0,Text_0,Barcode_0,Conv_1,Unit_1,Rate_1,Text_1,Barcode_1,Conv_2,Unit_2,Rate_2,Text_2,Barcode_2,Conv_3,Unit_3,Rate_3,Text_3,Barcode_3,Conv_4,Unit_4,Rate_4,Text_4,Barcode_4 from Prod_Unit where Code='" + a + "'";

Ds = SqlClass1.GetData_from_localhost(Query);

if (Ds.Tables[0].Rows.Count > 0)
{
    dt.Columns.Clear();
    dt.Rows.Clear();

    dt.Columns.Add("NO");
    dt.Columns.Add("UNITS");
    dt.Columns.Add("CONVERSION");
    dt.Columns.Add("BARCODE");
    dt.Columns.Add("RATE 1");
    dt.Columns.Add("RATE 2");
    dt.Columns.Add("PRINT TEXT");
    //  dt.Rows.Add();

    for (int i = 0; i < Ds.Tables[0].Columns.Count; i++)
    {
        if (i >= 0 && i <= 4)
        {
            dt.Rows.Add();
            dt.Rows[i]["NO"] = i + 1;
            string unit = Ds.Tables[0].Rows[0]["Unit_" + i + ""].ToString();

            DataSet temp = SqlClass1.GetData_from_localhost("select Unit FROM Units where Code=" + unit + "");

            if (temp.Tables[0].Rows.Count > 0)
            {
                dt.Rows[i]["UNITS"] = temp.Tables[0].Rows[0][0].ToString();
            }

            dt.Rows[i]["CONVERSION"] = Ds.Tables[0].Rows[0]["Conv_" + i + ""].ToString();
            dt.Rows[i]["BARCODE"] = Ds.Tables[0].Rows[0]["Barcode_" + i + ""].ToString();
            dt.Rows[i]["RATE 1"] = Ds.Tables[0].Rows[0]["Rate_" + i + ""].ToString();
            dt.Rows[i]["RATE 2"] = Ds.Tables[0].Rows[0]["Rate_" + i + ""].ToString();
            dt.Rows[i]["PRINT TEXT"] = Ds.Tables[0].Rows[0]["Text_" + i + ""].ToString();
        }
    }

    if (i == 0)
    {
        // ViewState["CurrentTable"] = dt;
        GridView1.DataSource = dt;
        GridView1.DataBind();
        //  SetPreviousData();
    }
}

ViewState["CurrentTable"] = dt;

GridView1.DataSource = dt;
GridView1.DataBind();

SetPreviousData();// function to get previous data in 

文本框

这是我在回发中调用的绑定函数。如何在ViewState["CurrentTable"] = dt;

中获取更新值

1 个答案:

答案 0 :(得分:0)

更新按钮

    DataTable dt = new DataTable();
    DataRow dr;
    dt.Columns.Add("NO");
    dt.Columns.Add("UNITS");
    dt.Columns.Add("CONVERSION");
          dt.Columns.Add("BARCODE");
          dt.Columns.Add("RATE 1");
          dt.Columns.Add("RATE 2");
           dt.Columns.Add("PRINT TEXT");
           dr = dt.NewRow();

           dr["NO"] = 1;

           dr["UNITS"] = string.Empty;

           dr["CONVERSION"] = string.Empty;

           dr["BARCODE"] = string.Empty;
           dr["RATE 1"] = string.Empty;
           dr["RATE 2"] = string.Empty;
           dr["PRINT TEXT"] = string.Empty;

           dt.Rows.Add(dr);

           int rowIndex = 0;

    for (int i = 0; i < GridView1.Rows.Count; i ++)
    {
        if (GridView1.Rows[rowIndex].RowType == DataControlRowType.DataRow)
        {

            DropDownList box1 = (DropDownList)GridView1.Rows[rowIndex].Cells[1].FindControl("DropDownList1");
            TextBox box2 = (TextBox)GridView1.Rows[rowIndex].Cells[2].FindControl("TextBox2");
            TextBox box3 = (TextBox)GridView1.Rows[rowIndex].Cells[3].FindControl("TextBox3");
            TextBox box4 = (TextBox)GridView1.Rows[rowIndex].Cells[4].FindControl("TextBox4");
            TextBox box5 = (TextBox)GridView1.Rows[rowIndex].Cells[5].FindControl("TextBox5");
            TextBox box6 = (TextBox)GridView1.Rows[rowIndex].Cells[6].FindControl("TextBox6");

            dt.Rows[i]["NO"] = i + 1;



            dt.Rows[i]["Units"] = box1.Text;

            dt.Rows[i]["Conversion"] = box2.Text;

            dt.Rows[i]["Barcode"] = box3.Text;
            dt.Rows[i]["Rate 1"] = box4.Text;
            dt.Rows[i]["Rate 2"] = box5.Text;
            dt.Rows[i]["Print Text"] = box6.Text;

            dt.Rows.Add();

            rowIndex++;
        }


        }
    ViewState["CurrentTable"] = dt;
    Save();//function for save
    }