2017-11-02 2 views
0

Ich habe ein Datagrid, das eine BoundColumn hat, ich versuche, den Header-Text auf der Seite zu ändern laden ich so fa. Ich habe das versucht.Daten Grid Daten gebunden Feld Header Text ändern in C#

<asp:datagrid id="dgdata" runat="server" Width="658px" CellPadding="2" PageSize="2" DataKeyField="Name" 
       AutoGenerateColumns="False" ShowFooter="True" BorderColor="AliceBlue" OnItemDataBound="dgTranscript_ItemDataBound"> 
      <Columns> 
        <asp:BoundColumn DataField="Name" HeaderText="" ItemStyle-VerticalAlign="Top"></asp:BoundColumn> 
</Columns> 
     </asp:datagrid> 

C#

dgdata.Columns[1].Visible = true; 
      dgdata.Columns[1].HeaderText = lblAverage.Text 

Ich möchte damit der Text in der Text zu sein, die in diesem Label ist aber sein lassen mich nicht, wenn ich ohne das Etikett sagen, es funktioniert

dgdata.Columns[1].Visible = true; 
      dgdata.Columns[1].HeaderText = "Some Text"; 

Bindung Daten

DataSet ds; 
     DataRow drClient = null; 
     dgdata.Columns[1].HeaderText = lblAverage.Text; // Here before the Daatabind I set the text to be that label 
     DataConn.WebExecute(out ds); 
     DataConn.Bind(dgTranscript, ds);// This binds the data to the datagrid 

Es zeigen s, dass Text als die Überschrift, aber wenn ich versuche, in irgendeiner Zeichenkette oder einem Etikett-Text zu stochern, leugnet es die ganze Überschrift verschwindet Dank im Voraus. Mit freundlichen Grüßen

Antwort

1

Wenn der Wert lblAverage nach Aufruf von DataBind auf dem Datagrid festgelegt wird, wird der Header leer bleiben.

Dies funktioniert

lblAverage.Text = "Some Text"; 
dgdata.Columns[0].HeaderText = lblAverage.Text; 

dgdata.DataSource = mySource; 
dgdata.DataBind(); 

Während dies nicht

lblAverage.Text = "Some Text"; 

dgdata.DataSource = mySource; 
dgdata.DataBind(); 

dgdata.Columns[0].HeaderText = lblAverage.Text; 
+0

Ja sind sie. Meine Antwort wurde korrigiert. Danke, dass du darauf hingewiesen hast. – VDWWD

+0

Ok ja, das hat nicht funktioniert. Lassen Sie mich mehr Informationen über die Frage einfügen, wie ich es an die Daten bin und wo ich den headertext setze –

0

du versuchen.

<asp:Label ID="lblAverage" runat="server" Text="Header Value"></asp:Label> 
     <asp:DataGrid ID="dgdata" runat="server" Width="658px" CellPadding="2" PageSize="2" DataKeyField="Name" 
      AutoGenerateColumns="False" ShowFooter="true" ShowHeader="true" BorderColor="AliceBlue"> 
      <Columns> 
       <asp:TemplateColumn> 
        <HeaderTemplate> 
         <asp:Label ID="lblheader" runat="server" Text='<%# lblAverage.Text %>'></asp:Label> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <asp:Label ID="lblvalue" runat="server" Text='<%# Eval("Name") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateColumn> 
      </Columns> 
     </asp:DataGrid> 
+0

Nein, Sir Ich möchte nur den Header der einen Spalte, die auf der Oberseite ist nicht eine weitere Zeile hinzufügen –