現在、オブジェクトデータソースを持つグリッドビューを使用して、製品情報のテーブルを表示しています。インペリアル単位とメートル単位の間で表示を切り替えるドロップダウン リストもあります。2 つを切り替えるには、誰かがドロップダウン リストの選択を変更するたびに、次のように古い単位列を削除し、選択に基づいて新しい列を挿入します。
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" へ)。ただし、長さを表示する別の列の値も変更する必要があります。この情報を格納するためにデータベース テーブルに新しい列を作成することなく、長さ列の値を何らかの方法で編集し (たとえば、定数を掛けて)、変更された列をグリッドビューにデータバインドすることは可能ですか?
私は次のようなものを想像しています:
DataColumn dc = GridView1.Columns[4];
foreach (cell c in dc)
{
c *= 0.5;
}
GridView1.Columns.Add(dc);
GridView1.DataBind();
単純な疑似コードですが、これは正しいアプローチですか/これは可能ですか?
ありがとう