0
データグリッドにセルの値に基づいて列のヘッダーテキストを変更したいと思います。どのようにセルのヘッダーを取得し、テキストを変更するには?C#ASP.NETアイテムの値に基づいてDataGridヘッダーテキストを変更する方法
助けてください。前もって感謝します!以下
のDataGridのhtml:
<asp:DataList ID="dlWarrant" runat="server" Width="100%" OnItemDataBound="dlWarrant_OnItemDataBound">
<ItemTemplate>
<asp:Table runat="server" ID="resulttable" Width="100%" >
<asp:TableRow>
<asp:TableCell ColumnSpan="6" HorizontalAlign="left">
<asp:DataGrid CellSpacing="1" runat="server" ID="dgWarrant1" CellPadding="4" ForeColor="#333333"
GridLines="Both" AutoGenerateColumns="False" HorizontalAlign="Center" Width="100%"
DataSource='<%# Eval("DETAILS1") %>' Font-Size="8.5pt" OnItemDataBound="dgWarrant1_OnItemDataBound">
<EditItemStyle BackColor="#999999" />
<SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle HorizontalAlign="Center" Mode="NumericPages" CssClass="PagerStyle" BackColor="#284775" ForeColor="White" />
<Columns>
<asp:BoundColumn DataField="PA_NO" HeaderText="WARRANT NO." HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" ItemStyle-Width="20%" />
<asp:BoundColumn DataField="TOTAL_UNITS_HELD" HeaderText="NO. OF UNITS HELD" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" DataFormatString="{0:#,##0.00}" ItemStyle-Width="20%" />
<asp:BoundColumn DataField="YR_ENDED" HeaderText="YEAR ENDING" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" ItemStyle-Width="20%" />
<asp:BoundColumn DataField="TYPE_OF_DISTRIBUT" HeaderText="TYPE OF DISTRIBUTION" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" ItemStyle-Width="20%" />
<asp:BoundColumn DataField="TRANS_DATE" HeaderText="REINVESTMENT DATE" HeaderStyle-HorizontalAlign="center" ItemStyle-HorizontalAlign="center" ItemStyle-Width="20%" />
<asp:BoundColumn DataField="INCOME_TREATMENT" HeaderText="INCOME_TREATMENT" ItemStyle-CssClass="hideGridColumn" HeaderStyle-CssClass="hideGridColumn" />
</Columns>
</asp:DataGrid>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</ItemTemplate>
</asp:DataList>
私のコードビハインド:
protected void dgWarrant1_OnItemDataBound(object sender, DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// if INCOME_TREATMENT <> R
if (e.Item.Cells[5].Text != "R")
{
//change the header of Cells[4] to DISTRIBUTION DATE
}
else
{
//change the header of Cells[4] to REINVESTMENT DATE
}
}
}
こんにちは。お返事をありがとうございます。しかし、dgWarrant1はDataList内にあるため、コードビハインドからはアクセスできません。上記のhtmlを更新します。あなたはdgWarrant1にアクセスする方法を知っていますか? – Intan
@Eera、私は自分のコードを編集しました。それがあなたを助けるかどうか今見てみてください。 – Nino
こんにちは@Nino。返事が遅れて申し訳ありません。ご協力のおかげで、私は今グリッドにアクセスできます。しかし、列ヘッダーのタイトルは変更されませんでした。助けてください。 – Intan