日期:2014-05-19  浏览次数:20969 次

WinForm中DataGridView列的显示问题
比如数据库里列保存的是“1”或“0”,我要显示“是”或“否”,我有一个方法string   DataStringFormat(string   getData)返回相应汉字字符的,请问如何设置DataGridView列应用这一方法,最好是设置方式而不是编码方式。

------解决方案--------------------
自定义或绑定列都一样,反正都要在前台显示状态吗;


如果是多元的话可以在后台写个方法:
public string changstr(string test)
{
if(test== "1 ")
{
return "是 ";
}
if(test== "0 ")
{
return "否 ";
}
....(其它)

}

前台调用:
<%# changstr(Convert.ToString(DataBinder.Eval(Container.DataItem, "flag ")))%> ...

------解决方案--------------------
最好的办法就是如楼主说的在CellFormatting事件中添加....

如果觉得效率低,这样行不行...即在从数据库中取出数据的时候设置一下...

for exampel:

select (case flag when 1 then '是 ' when 0 then '否 ' end) as Flag from table;

然后再绑定到DataGridView上即可..

------解决方案--------------------
可以把该列设置成CheckBox列

/// <summary>
/// 設置datagridview中某個欄位為CheckBox
/// </summary>
/// <param name= "iColumn "> 需要更改的欄位號 </param>
public void SetCheckBoxColumns(int iColumn, string iColName)
{
this.dataGridView1.Columns.RemoveAt(iColumn);
DataGridViewCheckBoxColumn checkboxColumn = new DataGridViewCheckBoxColumn();
checkboxColumn = CreateCheckBoxColumn(iColName);
this.dataGridView1.Columns.Insert(iColumn, checkboxColumn);
}

/// <summary>
/// 取得datagridview中一個CheckBox欄位的屬性

/// </summary>
/// <returns> 格式化以後的datagridview的CheckBoxColumn </returns>
public virtual DataGridViewCheckBoxColumn CreateCheckBoxColumn(string iCol)
{
DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
column.DataPropertyName = iCol;
column.ThreeState = false;
column.TrueValue = "Y ";
column.FalseValue = "N ";
column.HeaderText = ResourceFactory.GetMultilanguage(iCol);
}
return column;
}
------解决方案--------------------
我认为有几种方法:
1、查询语句用
select (case flag when 1 then '是 ' when 0 then '否 ' end) as Flag from table;
2.在程序加载数据的时候判断,替换,