Как и другие уже указывал, если название заголовка и т.д., как известен во время разработки, выключите AutoGeneratedColumns и просто установить заголовок и т.д. в определении поля, вместо использования автогенерируемых столбцов. Из вашего примера видно, что запрос является статическим и что заголовки известны во время разработки, поэтому, вероятно, ваш лучший выбор.
Однако [хотя ваш вопрос не указать это требование] - если текст заголовка (и форматирование и т.д.) является не известно во время разработки, но будет определяться во время выполнения, и если вам нужно автоматически генерировать столбцы (используя AutoGenerateColumns = true "), есть обходные пути для этого.
Один из способов сделать это - создать новый класс управления, который наследует gridview. Затем вы можете установить заголовок, форматирование и т. д. для автоматически генерируемых полей, переопределяя «CreateAutoGeneratedColumn» gridview. Пример:
//gridview with more formatting options
namespace GridViewCF
{
[ToolboxData("<{0}:GridViewCF runat=server></{0}:GridViewCF>")]
public class GridViewCF : GridView
{
//public Dictionary<string, UserReportField> _fieldProperties = null;
public GridViewCF()
{
}
public List<FieldProperties> FieldProperties
{
get
{
return (List<FieldProperties>)ViewState["FieldProperties"];
}
set
{
ViewState["FieldProperties"] = value;
}
}
protected override AutoGeneratedField CreateAutoGeneratedColumn(AutoGeneratedFieldProperties fieldProperties)
{
AutoGeneratedField field = base.CreateAutoGeneratedColumn(fieldProperties);
StateBag sb = (StateBag)field.GetType()
.InvokeMember("ViewState",
BindingFlags.GetProperty |
BindingFlags.NonPublic |
BindingFlags.Instance,
null, field, new object[] {});
if (FieldProperties != null)
{
FieldProperties fps = FieldProperties.Where(fp => fp.Name == fieldProperties.Name).Single();
if (fps.FormatString != null && fps.FormatString != "")
{
//formatting
sb["DataFormatString"] = "{0:" + fps.FormatString + "}";
field.HtmlEncode = false;
}
//header caption
field.HeaderText = fps.HeaderText;
//alignment
field.ItemStyle.HorizontalAlign = fps.HorizontalAlign;
}
return field;
}
}
[Serializable()]
public class FieldProperties
{
public FieldProperties()
{ }
public FieldProperties(string name, string formatString, string headerText, HorizontalAlign horizontalAlign)
{
Name = name;
FormatString = formatString;
HeaderText = headerText;
HorizontalAlign = horizontalAlign;
}
public string Name { get; set; }
public string FormatString { get; set; }
public string HeaderText { get; set; }
public HorizontalAlign HorizontalAlign { get; set; }
}
}
если вы _can't check_, а затем, пожалуйста, не _answer_, пока не сможете _check_ – 2017-07-20 06:08:38