0

Gridview の計算で問題が発生しました。シナリオは次のとおりです。

ストア プロシージャから返された結果セットによってバインドされた Gridview があります。ユーザーがパーセンテージを入力できるように、グリッドビューにテキストボックスの行をプログラムで挿入しました。課題は次のとおりです:グリッドビューのパーセンテージと値に基づいて値を計算し、最後の行に計算された値を入力するにはどうすればよいですか?

私のコードは少し長いです。これがスナップショットです。

以下のコードは、グリッドをバインドすることです

            gv.DataSource = dt;
            gv.RowDataBound += new GridViewRowEventHandler(this.gv1_RowDataBound);



            gv.DataBind();
            gv.AutoGenerateColumns = false;
            gv.Style.Add("CssClass", "bodycopy");
            gv.CssClass = "bodycopy";

            gv.Style.Add("class", "border-right: #99ccff 1px solid; border-top: #000000 1px solid;border-left: #99ccff 1px solid; border-bottom: #99ccff 1px solid");
            gv.Attributes.Add("class", "border-right: #99ccff 1px solid; border-top: #000000 1px solid;border-left: #99ccff 1px solid; border-bottom: #99ccff 1px solid");
            gv.Height = Unit.Pixel(700);
            NewCell.Controls.Add(gv);
            NewCell.Style.Add("CssClass", "bodycopy");

            newRow.Cells.Add(NewCell);
            AssignCellCoordinatesIndividual(gv);

以下の機能は、他のいくつかのグリッドを含むテーブルにグリッドを追加することです。

private void AssignCellCoordinatesIndividual(GridView gv)
        {


            // Create IDs for Grid
            for (int i = 0; i < gv.Rows.Count; i++)
            {
                gv.Rows[i].ID = "r" + i; // Row ID
                for (int ii = 0; ii < gv.Rows[i].Cells.Count; ii++)
                {
                    gv.Rows[i].Cells[ii].ID = "c" + ii; // Cell ID

                    //gv.Rows[i].ControlStyle.

                    if ((int)Session["cellCount"] == 0)
                    {
                        if (gv.Rows[i].ID == "r25" || gv.Rows[i].ID == "r26" || gv.Rows[i].ID == "r27")
                        {
                            if (gv.Rows[i].Cells[ii].ID != "c0" && gv.Rows[i].Cells[ii].ID != "c1" )
                            {

                                User_Controls.txtPercent txtPerc = (User_Controls.txtPercent)LoadControl("~/User_Controls/txtPercent.ascx");
                                TextBox tbox = txtPerc.FindControl("txtPerc") as TextBox;


                                gv.Rows[i].Cells[ii].Controls.Add(txtPerc);
                                gv.Rows[i].Cells[ii].VerticalAlign = VerticalAlign.Middle;
                            }
                        }
                    }

                }
            }

        }

テキストボックスを含むユーザーコントロールを作成しました。これは上記のコードでグリッドに動的に追加され、ユーザーがパーセンテージを入力できるようにしました。ここで、ユーザーが入力したパーセンテージに基づいて値を計算し、グリッドビューの最後の行に入力する必要があります。

意味はありますか?

4

1 に答える 1