0

我正忙于一个 Windows Embedded CE 5.0 移动应用程序。我现在有点卡住了。我正在使用带有数据的数据网格。我想在网格中添加一个额外的列(已经这样做了。我从 dual 添加了 null)。现在在应用程序中,我希望用户能够更改字段的值(一包中有多少单位)。

这是我的数据网格代码:

private void gridView()
    {
        conn.Open();
        string query = "select distinct s.sku_id_no SKU_id, (pt.product_type_desc|| ' ' ||ps.prod_size_desc|| ' ' ||c.colour_desc) Product_Desc, null Pack_Units from sku s , product_type pt , prod_size ps , colour c , purch_order_carton_sku pocs, purch_order_carton_sku poc, dual where pocs.order_no ='" + this.orderCode + "' and pocs.carton_code ='" + this.cartonCode + "' and pocs.sku_id_no = s.sku_id_no and s.prod_size_id_no = ps.prod_size_id_no(+) and s.colour_id_no = c.colour_id_no(+)";
        OracleDataAdapter da = new OracleDataAdapter(query, conn);
        OracleDataSet ds = new OracleDataSet();
        da.Fill(ds);
        dgSku.DataSource = ds.Tables[0]; 
    {

然后当屏幕像这样加载时我调用网格:

private void frmCartonContentVerification_Load(object sender, EventArgs e)
    {
        gridView();
    }

在此处输入图像描述

以上就是它目前的样子。因此,当用户例如单击 Pack_Units 的第一个字段时,我希望他们能够编辑该字段。

目标是当他们单击 NEXT 按钮时,必须运行验证程序并检查是否正确。因此,如果有些人也可以向我展示如何从选择字段中获取值,那就太好了?

我在 VS 2005 c# 中使用 Oracle 数据库。

提前致谢!

4

2 回答 2

1

要获取当前选定单元格的值(假设dgSku是您的 DataGrid):

var value = dgSku[dgSku.CurrentCell.RowNumber, dgSku.CurrentCell.ColumnNumber];

能够编辑字段....恐怕解决方案相当痛苦。您根本需要的是一个由 TextBoxes 组成的列,并且由于 .NETCF 仅提供桌面等效功能的一个子集,您必须自己制作一个。看看这里这里,这应该给你一个很好的起点。

于 2012-12-05T09:18:02.630 回答
0

StaWho 是对的,CF 不支持内联编辑。Paul Yao 在他的“Programming the .Net Compact Framework”一书中有一个很好的解决方案。

另一种解决方法是将一个文本字段添加到表单并使用网格单击事件来显示和更改 Pack_Units 列的值以进行编辑。

于 2012-12-06T09:48:55.507 回答