Сетка данных Изменение текста заголовка связанного поля данных в C#

У меня есть сетка данных с BoundColumn там, я пытаюсь изменить текст заголовка при загрузке страницы, я так fa. Я попробовал это.

  <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

Я хочу установить текст, который будет внутри этого ярлыка, но он не позволяет мне, если я говорю без ярлыка, он работает

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

Обязательные данные

 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

Он показывает этот текст в качестве заголовка, но когда я пытаюсь вставить любую строку или текст метки, он отрицает, что весь заголовок исчезает. Заранее спасибо. С уважением

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;

Вы можете попробовать это.

 <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>
Другие вопросы по тегам