110,534
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 载入信息<para></para>
/// 控件命名要求已3字母前缀加实体属性名(大小写敏感)
/// <para>文本 txt;日期 dtp;下拉框 drp;数字 dec</para>
/// </summary>
/// <param name="container">数据录入控件的容器,通常为panel</param>
/// <param name="item">已设置主键的实体</param>
protected void LoadInfo(Control container, EntityObject item)
{
item.Retrieve();
object obj = null;
Type objtype = item.GetType();
for (int i = 0; i < container.Controls.Count; i++)
{
if (container.Controls[i].Name.StartsWith("dec"))
{
TextBox txt = container.Controls[i] as TextBox;
obj = objtype.GetProperty(txt.Name.Substring(3)).GetValue(item, null);
string c = obj == null ? string.Empty : obj.ToString();
decimal dc = 0;
decimal.TryParse(c, out dc);
txt.Text = dc.ToString("##########.####");
if (string.IsNullOrEmpty(txt.Text))
{
txt.Text = "0";
}
}
else if (container.Controls[i].Name.StartsWith("txt"))
{
TextBox txt = container.Controls[i] as TextBox;
obj = objtype.GetProperty(txt.Name.Substring(3)).GetValue(item, null);
txt.Text = obj == null ? string.Empty : obj.ToString();
}
else if (container.Controls[i].Name.StartsWith("drp"))
{
ComboBox drp = container.Controls[i] as ComboBox;
obj = objtype.GetProperty(drp.Name.Substring(3)).GetValue(item, null);
string v = obj == null ? string.Empty : obj.ToString();
//drp.Text = v;
if (obj != null)
{
drp.SelectedIndex = drp.FindString(obj.ToString());
}
else
{
int emptyindex=drp.FindString("空白");
drp.SelectedIndex = emptyindex;
}
}
else if (container.Controls[i].Name.StartsWith("tmp"))
{
CheckBox chk = container.Controls[i] as CheckBox;
DateTimePicker dtp = container.Controls[container.Controls[i].Name.ToString().Substring(3)] as DateTimePicker;
obj = objtype.GetProperty(dtp.Name.Substring(3)).GetValue(item, null);
if ((obj.ToString() != "0001-1-1 0:00:00") && (obj.ToString() != "0001/1/1 0:00:00"))
{
chk.Text = string.Empty;
chk.Checked = true;
dtp.Visible = true;
dtp.Value = DateTime.Parse(obj.ToString());
}
else
{
dtp.Visible = false;
chk.Text = "点击选择日期";
chk.Checked = false;
}
}
//统一设置DataGridView格式:
else if (container.Controls[i].Name.StartsWith("dgv"))
{
DataGridView dgview = container.Controls[i] as DataGridView;
dgview.BackgroundColor = SystemColors.Window;
dgview.DefaultCellStyle.BackColor = Color.White;
dgview.DefaultCellStyle.ForeColor = Color.Gray;
dgview.DefaultCellStyle.SelectionForeColor = Color.Blue;
dgview.DefaultCellStyle.SelectionBackColor = Color.Aqua;
}
else if (container.Controls[i].Name.StartsWith("int"))
{
TextBox txt = container.Controls[i] as TextBox;
obj = objtype.GetProperty(txt.Name.Substring(3)).GetValue(item, null);
string c = obj == null ? string.Empty : obj.ToString();
int dc = 0;
int.TryParse(c, out dc);
txt.Text = dc.ToString();
if (string.IsNullOrEmpty(txt.Text))
{
txt.Text = "0";
}
}
}
}