0

I have a datagrid that has a BoundColumn there I am trying to change the header text on page load I so fa. I have tried this.

  <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

I want to set the text to be the text that's inside that label but its not letting me if i say without the label it works

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

Binding Data

 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

It shows that text as the header but when I try punting in any string or a label text it denies the whole header disappears Thanks in advance. Best Regards

4

2 回答 2

2

如果lblAverage在调用DataBind数据网格后设置了 的值,则标题将保持为空。

这有效

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

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

虽然这不会

lblAverage.Text = "Some Text";

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

dgdata.Columns[0].HeaderText = lblAverage.Text;
于 2017-11-02T15:26:33.970 回答
0

你可以试试这个。

 <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>
于 2017-11-02T16:06:14.877 回答