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