我目前正在从MySQL数据库中检索数据并将其显示在this.importForm.reset({
area: [],
silo: [],
department: [],
location: [],
segment: [],
role: []
});
中。其中一列为DataGridView
,gender(int)
表示男,1
表示女。我希望DataGridView显示男性或女性,而不仅仅是2
和1
。
在MySQL查询中预先格式化数据是一种好习惯吗?我正在考虑在2
中装饰检索到的数据,而不是更改检索到的数据。但是让我听听你的想法。
答案 0 :(得分:1)
在下面的示例中,我动态创建了一个列并添加到我的数据网格中。现在,一旦数据表绑定到Grid,它将选择正确的值。
try
{
dataGridView1.AutoGenerateColumns = false;
//source for combo box
var items = new Dictionary<string, int>();
items.Add("Male", 1);
items.Add("FeMale", 2);
//new combobox column for the GRID
DataGridViewComboBoxColumn gender = new DataGridViewComboBoxColumn();
gender.DisplayMember = "Key";
gender.ValueMember = "Value";
gender.DataSource = new BindingSource(items, null);
gender.HeaderText = "Gender";
gender.DataPropertyName = "Gender";
dataGridView1.Columns.Add(gender);
//Data for the GRID
DataTable dt = new DataTable();
dt.Columns.Add("Gender", typeof(int));
dt.Rows.Add(new object[] { 1 });
dt.Rows.Add(new object[] { 2 });
dt.Rows.Add(new object[] { 2 });
dt.Rows.Add(new object[] { 2 });
dt.Rows.Add(new object[] { 1 });
dataGridView1.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
这给出了以下输出
答案 1 :(得分:0)
这是视觉基本代码。不确定预先格式化数据是否是好的做法..
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.GridViewRowEventArgs) Handles
GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim gender As String =
Convert.ToString(e.Row.Cells(columnnumber).Text).Trim()
If gender= "1" Then
e.Row.Cells(columnnumber).Text = "Male"
Else if gender="2" Then
e.Row.Cells(columnnumber).Text="Female" `
End If
End Sub
的字段类型: asp:BoundField DataField =&#34; Zone&#34;
翻译使用:https://www.carlosag.net/tools/codetranslator/
protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) {
if ((e.Row.RowType == DataControlRowType.DataRow)) {
string gender = Convert.ToString(e.Row.Cells[columnnumber].Text).Trim();
if ((gender == "1")) {
e.Row.Cells[columnnumber].Text = "Male";
}
else if ((gender == "2")) {
e.Row.Cells[columnnumber].Text = "Female";
}
}
}
希望这有帮助