不敢相信我不得不问这个问题——你会认为这样一个基本功能很容易实现,但我在为 Gridview 创建页脚时遇到了麻烦。我已经查看了各种教程和其他问题,例如此处、此处和此处,但仍然遇到困难。
问题在于正确显示页脚(即没有添加额外的空列)。根据我收集的信息,您需要将 FooterTemplate 放在 TemplateField 标记中,否则它将不起作用 - 至少它不会为我编译。如果我在 BoundFields 列之后插入它,那么它会添加一个额外的列,这是不可取的。
<asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="false" AllowSorting="true"
CellPadding="3" HorizontalAlign="Center" GridLines="both" CssClass="dataTable1"
OnRowDataBound="Colour_Columns" Caption="PARTIAL COMPARE" ShowFooter="true">
<HeaderStyle BackColor="Black" ForeColor="AntiqueWhite" Height="30" CssClass="header" />
<FooterStyle BackColor="Black" ForeColor="AntiqueWhite" Height="30" CssClass="footer" />
<Columns>
<asp:BoundField DataField="FOLDER" HeaderText="Location" />
<asp:BoundField DataField="FILE" HeaderText="File" />
<asp:BoundField DataField="CHECKSUM" HeaderText="Checksum" Visible="false" />
<asp:BoundField DataField="STATUS" HeaderText="Status" />
<asp:BoundField DataField="DATE" HeaderText="Date" Visible="false" />
<asp:TemplateField>
<FooterTemplate>
<asp:Button ID="UpdateButton" runat="server" Text="UPDATE" CssClass="updateButton" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
同样,如果我将它放在 BoundFields 之前,它会在左侧添加一个额外的列。如果我尝试将所有 BoundFields 放在 TemplateField 下,它将无法编译。
如何在不创建额外列的情况下将页脚添加到 gridview?另外,当我们使用它时,如何将它的 colspan 设置为 1?(它只会有一个更新按钮,因此页脚中不需要三列。)
颜色方案方法:
protected void Colour_Columns(Object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.Cells[3].Text == "Match")
e.Row.BackColor = Color.Lime;
if (e.Row.Cells[3].Text == "Mismatch")
e.Row.BackColor = Color.Gold;
if (e.Row.Cells[3].Text == "New File")
e.Row.BackColor = Color.PeachPuff;
}
}
此方法似乎无法识别 ItemTemplate 值...