我遇到了 Gridview 计算的问题。场景是:
我有一个由存储过程返回的结果集绑定的 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;
}
}
}
}
}
}
我创建了一个包含文本框的用户控件,它在上面的代码中动态添加到网格中,使用户能够输入百分比。现在我需要根据用户输入的百分比计算值并填充 gridview 中的最后一行。
这有什么意义吗?