Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据绑定到Gridview标头模板?在Asp.net中_Asp.net - Fatal编程技术网

将数据绑定到Gridview标头模板?在Asp.net中

将数据绑定到Gridview标头模板?在Asp.net中,asp.net,Asp.net,在web应用程序中,我试图绑定gridivew的头模板,但无法将数据绑定到gridview头 <asp:GridView ID ="grdInner" runat ="server" AutoGenerateColumns ="false" > <Columns > <asp:TemplateField > <HeaderTemplate > <asp:La

在web应用程序中,我试图绑定gridivew的头模板,但无法将数据绑定到gridview头

   <asp:GridView ID ="grdInner" runat ="server" AutoGenerateColumns ="false" >
       <Columns >
          <asp:TemplateField >
             <HeaderTemplate >
          <asp:Label ID="lblHeader" runat="server" Text='<%# Eval("title") %>'></asp:Label>     
              </HeaderTemplate>
              <ItemTemplate >
                 <asp:Label ID ="lblDesc" runat ="server" Text ='<%# Eval("description") %>'></asp:Label>
              </ItemTemplate>
          </asp:TemplateField> 
       </Columns>
     </asp:GridView>

下面的代码实现了相同的功能

<asp:GridView runat="server" ID="gridView" onrowdatabound="gridView_OnRowDataBound" AutoGenerateColumns="false">
<columns>
    <asp:TemplateField>
        <HeaderTemplate><asp:Label runat="server" ID="lblHeader"></asp:Label></HeaderTemplate>
    </asp:TemplateField>
</columns>
</asp:GridView>

下面的代码实现了相同的功能

<asp:GridView runat="server" ID="gridView" onrowdatabound="gridView_OnRowDataBound" AutoGenerateColumns="false">
<columns>
    <asp:TemplateField>
        <HeaderTemplate><asp:Label runat="server" ID="lblHeader"></asp:Label></HeaderTemplate>
    </asp:TemplateField>
</columns>
</asp:GridView>

另一种方法非常简单,如果您想将DataTable列标题绑定到Gridview标题,例如,您正在生成列名称可能不同的DataTable,并且希望这些动态名称成为Gridview标题列名

DataTable dt = // Call your DataTable here.

    // Get your column names here.
    string nutrient = dt.Columns[2].ColumnName;
    string nutrient1 = dt.Columns[3].ColumnName;
    string nutrient2 = dt.Columns[4].ColumnName;
    string nutrient3 = dt.Columns[5].ColumnName;
    string nutrient4 = dt.Columns[6].ColumnName;
    string nutrient5 = dt.Columns[7].ColumnName;
    
    GridView1.DataSource = dt;
    GridView1.DataBind();

    if (GridView1.Rows.Count > 0)
    {
        GridView1.HeaderRow.Cells[2].Text = nutrient;
        GridView1.HeaderRow.Cells[3].Text = nutrient1; 
        GridView1.HeaderRow.Cells[4].Text = nutrient2;
        GridView1.HeaderRow.Cells[5].Text = nutrient3;
        GridView1.HeaderRow.Cells[6].Text = nutrient4;
        GridView1.HeaderRow.Cells[7].Text = nutrient5;            
    } 

您还可以使用GridView1.FooterRow.Cells[x].Text=…

对页脚行执行相同的操作。如果您想将DataTable列标题绑定到Gridview标题,则另一种方法相当简单,例如,您正在生成列名称可能不同的数据表,并且希望这些动态名称成为GridView标题列名

DataTable dt = // Call your DataTable here.

    // Get your column names here.
    string nutrient = dt.Columns[2].ColumnName;
    string nutrient1 = dt.Columns[3].ColumnName;
    string nutrient2 = dt.Columns[4].ColumnName;
    string nutrient3 = dt.Columns[5].ColumnName;
    string nutrient4 = dt.Columns[6].ColumnName;
    string nutrient5 = dt.Columns[7].ColumnName;
    
    GridView1.DataSource = dt;
    GridView1.DataBind();

    if (GridView1.Rows.Count > 0)
    {
        GridView1.HeaderRow.Cells[2].Text = nutrient;
        GridView1.HeaderRow.Cells[3].Text = nutrient1; 
        GridView1.HeaderRow.Cells[4].Text = nutrient2;
        GridView1.HeaderRow.Cells[5].Text = nutrient3;
        GridView1.HeaderRow.Cells[6].Text = nutrient4;
        GridView1.HeaderRow.Cells[7].Text = nutrient5;            
    } 

您还可以使用GridView1.FooterRow.Cells[x].Text=…,对页脚行执行相同的操作。

由于页眉只有一个,因此无法将数据绑定到页眉。只能将数据绑定到重复项。无法将数据绑定到标头,因为只有一个标头。只能将数据绑定到重复项。