私がこれを尋ねなければならないことを信じることができません-あなたはそのような基本的な機能を実装するのは簡単だと思うでしょうが、私は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の前に配置すると、左側に列が追加されます。すべてのBoundFieldをTemplateFieldの下に配置しようとすると、コンパイルされません。
追加の列を作成せずにフッターをグリッドビューに追加するにはどうすればよいですか?また、その間、colspanを1に設定するにはどうすればよいですか?(更新ボタンが1つしかないため、フッターに3つの列は必要ありません。)
配色法:
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値を認識していないようです...