【发布时间】:2012-10-29 16:21:58
【问题描述】:
目前我正在使用带有 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();
作为简单的伪代码,但这是正确的方法/这可能吗?
谢谢
【问题讨论】:
标签: c# asp.net sql gridview objectdatasource