怎样用C#代码改变DetailsView的样式?

2025-03-04 03:58:16
推荐回答(4个)
回答1:

private void setGridViewStyle()
{
gviewEmployees.AutoGenerateColumns = false;
string[] KeyNames = new string[] { "EmployeeID" };
gviewEmployees.DataKeyNames = KeyNames;

//设置GridView属性
gviewEmployees.AllowPaging = true; //设置分页
gviewEmployees.AllowSorting = true; //设置排序
gviewEmployees.Font.Size = 10; //设置字号大小
gviewEmployees.GridLines = GridLines.Both; //设置网格线
gviewEmployees.PageSize = 10;
//非同步Callback模式
gviewEmployees.EnableSortingAndPagingCallbacks = false;
//分页位置
gviewEmployees.PagerSettings.Position = PagerPosition.TopAndBottom;
//分页对齐
gviewEmployees.PagerStyle.HorizontalAlign = HorizontalAlign.Center;

gviewEmployees.HeaderStyle.BackColor = Color.Tan;
gviewEmployees.RowStyle.BackColor = Color.LightGoldenrodYellow;
gviewEmployees.AlternatingRowStyle.BackColor = Color.PaleGoldenrod;
gviewEmployees.HeaderStyle.ForeColor = Color.Black;
gviewEmployees.PagerStyle.BackColor = Color.Goldenrod;

//设置选择行背景颜色
gviewEmployees.SelectedRowStyle.BackColor = Color.LightBlue;
}

//创建及设置Fields字段
private void setFields()
{
//创建命令字段
CommandField selectField = new CommandField();
selectField.ButtonType = ButtonType.Link;
selectField.ShowSelectButton = true; //显示选择按钮
selectField.SelectText = "选择行";
selectField.ItemStyle.Wrap = false;
//创建数据绑定字段
BoundField employeeidField = new BoundField();
BoundField lastnameField = new BoundField();
BoundField cityField = new BoundField();
BoundField addressField = new BoundField();

employeeidField.DataField = "EmployeeID"; //指定数据源字段
employeeidField.HeaderText = "EmployeeID"; //设置字段头名称
//employeeidField.SortExpression = "EmployeeID"; //指定排序字段名称
employeeidField.ItemStyle.Wrap = false;
employeeidField.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
lastnameField.DataField = "LastName";
lastnameField.HeaderText = "LastName";
//lastnameField.SortExpression = "LastName";
lastnameField.ItemStyle.Wrap = false;
cityField.DataField = "City";
cityField.HeaderText = "City";
//cityField.SortExpression = "City";
cityField.ItemStyle.Wrap = false;
addressField.DataField = "Address";
addressField.HeaderText = "Address";
addressField.ItemStyle.Wrap = false;
//将字段添加到GridView
gviewEmployees.Columns.Add(selectField);
gviewEmployees.Columns.Add(employeeidField);
gviewEmployees.Columns.Add(lastnameField);
gviewEmployees.Columns.Add(cityField);
gviewEmployees.Columns.Add(addressField);

cbxlistSortColumns.RepeatDirection = RepeatDirection.Horizontal;

//将GridView字段Field加入到CheckBoxList项目
int i = 0;
foreach (DataControlField field in gviewEmployees.Columns)
{
if (!String.IsNullOrEmpty(field.HeaderText))
{
cbxlistSortColumns.Items.Add(new ListItem(field.HeaderText, i.ToString()));
}
i++;
}
}

protected void gviewEmployee_Sorted(object sender, EventArgs e)
{
switch (gviewEmployees.SortDirection)
{
//设置升降幂外观样式
case SortDirection.Ascending:
gviewEmployees.HeaderStyle.BackColor = Color.Tan;
gviewEmployees.RowStyle.BackColor = Color.LightGoldenrodYellow;
gviewEmployees.AlternatingRowStyle.BackColor = Color.PaleGoldenrod;
gviewEmployees.HeaderStyle.ForeColor = Color.Black;
gviewEmployees.PagerStyle.BackColor = Color.Goldenrod;
gviewEmployees.SelectedRowStyle.BackColor = Color.LightBlue;
break;
//设置升降幂外观样式
case SortDirection.Descending:
gviewEmployees.HeaderStyle.BackColor = Color.MidnightBlue;
gviewEmployees.RowStyle.BackColor = Color.LightBlue;
gviewEmployees.AlternatingRowStyle.BackColor = Color.Lavender;
gviewEmployees.HeaderStyle.ForeColor = Color.White;
gviewEmployees.PagerStyle.BackColor = Color.LightPink;
gviewEmployees.SelectedRowStyle.BackColor = Color.LightPink;
break;
}

}

protected void gviewEmployee_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
Label txtMsg = new Label();
txtMsg.ForeColor = Color.Blue;
txtMsg.Text = "您选择的行是第 " + (e.NewSelectedIndex + 1) + " 行,资料明细如下:
";
//您也可以用gviewEmployee.SelectedIndex来取代e.NewSelectedIndex + 1
//txtMsg.Text = "您选择的行是第 " + (gviewEmployee.SelectedIndex) + " 行,资料明细如下:
";
for (int i=1;i {
txtMsg.Text += gviewEmployees.Columns[i].HeaderText + ":" + gviewEmployees.Rows[e.NewSelectedIndex].Cells[i].Text + ",";
}

Page.Controls.Add(txtMsg);

}

protected void cbxlistSortColumns_SelectedIndexChanged(object sender, EventArgs e)
{
for (int i = 0; i <= cbxlistSortColumns.Items.Count - 1; i++)
{
int index = Convert.ToInt16(cbxlistSortColumns.Items[i].Value);
if (cbxlistSortColumns.Items[i].Selected == true)
{
//设置排序字段名称
gviewEmployees.Columns[index].SortExpression = cbxlistSortColumns.Items[i].Text;
}
else
{
//取消排序
gviewEmployees.Columns[index].SortExpression = null;
}
}
}

回答2:

2楼的那个就可以了啊,这个前提是你必须设计成你的表的列要和这个控件的列对应就可以了。
在一种办法就是你在数据库里面把表的列设成中文,也行(我朋友的公司就是这样干的),
在就是你查数据的时候你要显示及列数据你在查询的时候给他重新命名,把你数据库里的表的列名该为中文也行!

回答3:

楼上功能是强,但没切中问题要点.
DetailsView1.HeaderText = "你要显示的文字";
一句话,就可以了.

回答4:

DetailsView的id号然后再修改属性啊