设置图像的排序顺序

时间:2014-12-03 11:54:55

标签: c# datagridview foreach

我遇到了一个问题,我已经敲打了几个星期......

我想出了一个非常糟糕且极长且令人尴尬的解决方案 现在我想知道我是否可以从你那里得到一些专业的帮助:)

我正在尝试遍历数据网格视图并为我的图像设置顺序 我的in-data是一个datagridview,有两列(id,sortorder)

问题是我的in-data sortorder对于第一张图片是1,对于最后一张图片是2,并且应该介于两者之间 所以我想转换这些值:

id     sortorder
9520   1
9520   0
9520   0
9520   0
9520   0
9520   2

对此:

id     sortorder
9520   1 (original was 1)
9520   2
9520   3
9520   4
9520   5
9520   6 (original was 2)

编辑: 到目前为止我得到的代码是:

                void setSort()
    {
        dgv2.ColumnCount = 5;
        dgv2.Columns[0].Name = "PropertyID";
        dgv2.Columns[1].Name = "Type";
        dgv2.Columns[2].Name = "Status";
        dgv2.Columns[3].Name = "ImageName";
        dgv2.Columns[4].Name = "Order";
        string id = dgv1[0, 0].Value.ToString();
        int sOrder = 0;
        foreach (DataGridViewRow row in dgv1.Rows)
        {
            if (row.Cells["PropertyID"].Value == null) break;
            string id2 = row.Cells["PropertyID"].Value.ToString();
            if (id2 != id) sOrder = 0;
            sOrder++;
            row.Cells["Type"].Value = sOrder;
            id = id2;
            dgv2.Rows.Add(row.Cells[0].Value.ToString(), row.Cells[2].Value.ToString(), row.Cells[3].Value.ToString(), row.Cells[0].Value.ToString() + "-" + id + "." + row.Cells[4].Value.ToString(), id);
        }
    }

2 个答案:

答案 0 :(得分:1)

这会完成这项工作吗?

void setSort()
{
    string id = dataGridView1[0, 0].Value.ToString();
    int sOrder = 0;
    for (int row = 0; row < dataGridView1.Rows.Count; row++)
    {
        if (dataGridView1[0, row].Value == null) break;
        string id2 = dataGridView1[0, row].Value.ToString();
        if (id2 != id) sOrder = 0;
        sOrder++;
        dataGridView1[1, row].Value = sOrder;
        id = id2;
    }
}

答案 1 :(得分:0)

我设法在数据中进行所需的更改,所以现在我可以使用TaW的解决方案了:) 非常感谢你的帮助和耐心