Wie andere haben bereits darauf hingewiesen, wenn der Header-Titel usw. zur Entwurfszeit bekannt ist, schalten AutoGeneratedColumns ab und nur den Titel usw. in der Felddefinition festgelegt, anstatt automatisch der Verwendung Spalten erzeugt. In Ihrem Beispiel sieht es so aus, als ob die Abfrage statisch ist und die Titel zur Entwurfszeit bekannt sind. Dies ist wahrscheinlich die beste Wahl.
jedoch [, obwohl Ihre Frage spezifizieren diese Anforderung nicht] - wenn der Kopftext (und Formatierung etc.) ist nicht zur Design-Zeit bekannt, aber zur Laufzeit bestimmt werden, und wenn Sie benötigen, um Auto-Spalten zu erzeugen (mit AutoGenerateColumns = true ") gibt es Problemumgehungen dafür.
Eine Möglichkeit, das zu tun, ist eine neue Steuerelementklasse erstellen, die die Gridview erbt. Sie können Header, Formatierung usw. für die automatisch generierten Felder durch Überschreiben festlegen "CreateAutoGeneratedColumn" der Gridview Beispiel:
//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; }
}
}
wenn Sie _can't check_ dann bitte nicht _answer_ bis Sie können _check_ –