列之间的数据网格操作

本文关键字:网格 操作 数据网 数据 之间 | 更新日期: 2023-09-27 18:04:14

这是我得到的数据网格

+==========+==========+==========+==========+
| Product  |  Price   | quantity |   Total  |
+==========+==========+==========+==========+

,所以我得到了产品和价格从MySQL数据库(表1)。用户在quantity单元格中输入number,程序计算Total (Total=Price*quantity),并将其保存在表2中(在MySQL中)。

这是一个例子

+==========+==========+==========+==========+
| Product  |  Price   | quantity |   Total  |
+==========+==========+==========+==========+
|  AAAAA   |    30    |    2     |    60    |
+==========+==========+==========+==========+

我像这样添加CellEditEndding处理程序

private void Produit_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
        DataTable dt = new DataTable();
        dt = ((DataView)Produit.ItemsSource).ToTable();
        foreach (DataRow row in dt.Rows)
        {
            row["total"] = (Convert.ToDouble(row["price"]) * Convert.ToDouble(row["quantity"]));
        }
        Produit.ItemsSource = dt.DefaultView;
    }

当我编辑一个数量单元格时,所有的东西都返回0。

注意:当我填充DataGrid I填充数量和总数与zoros

列之间的数据网格操作

我理解你的问题,你想要求用户只输入产品代码和数量,然后价格和总价自动添加到data grid view。为此,您需要在data grid column中使用TemplateField来添加Label field,如下所示

      <Columns>
                    <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lblprice" runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
 <asp:TemplateField>
                        <ItemTemplate>
                            <asp:Label ID="lblTotalPrice" runat="server"></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
    </Columns>

然后访问标签到服务器端

Label lblprice= (Label)row.FindControl("lblprice");
Label lblTotalPrice= (Label)row.FindControl("lblTotalPrice");

现在给这些标签赋值