目前我正在使用带有 objectdatasource 的 gridview 来显示产品信息表。我还有一个下拉列表可以在英制和公制单位之间切换视图。要在两者之间切换,每次有人更改下拉列表选择时,我都会删除旧的单位列并根据选择插入一个新列,如下所示:
if (GridView1.Columns.Count > 7)
JobListGridView.Columns.Remove(GridView1.Columns[7]);
BoundField colIndex8 = new BoundField();
colIndex8.HeaderText = "Units";
if (UnitsDropDown.Text == "Imperial")
{
colIndex8.DataField = "IUnits";
colIndex8.SortExpression = "IUnits";
GridView1.Columns.Add(colIndex8);
}
else
{
colIndex8.DataField = "MUnits";
colIndex8.SortExpression = "MUnits";
GridView1.Columns.Add(colIndex8);
}
GridView1.DataBind();
这可以改变单位列中显示的单位(例如从“mm”到“ft”)。但是,我还需要更改显示长度的另一列的值。是否可以以某种方式编辑长度列中的值(例如乘以常数),然后将修改后的列数据绑定到gridview,而不必在数据库表中创建一个新列来存储这些信息?
我在想像:
DataColumn dc = GridView1.Columns[4];
foreach (cell c in dc)
{
c *= 0.5;
}
GridView1.Columns.Add(dc);
GridView1.DataBind();
作为简单的伪代码,但这是正确的方法/这可能吗?
谢谢