数据网格数据绑定字段标题文本在c#中更改

时间:2017-11-02 14:48:06

标签: c# asp.net datagrid boundfield headertext

我有一个数据网格,其中有一个BoundColumn,我试图更改页面加载时的标题文本。我试过这个。

  <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 个答案:

答案 0 :(得分:1)

如果在数据网格上调用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;

答案 1 :(得分: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>