3

グリッドビューの1列だけのヘッダーを右揃えにする方法を知っている人はいますか? ウェブを検索しても、まだ解決策が見つかりません。

Horizo​​ntalAlign='Right' はデータに対して機能しますが、ヘッダーに対しては機能しません。すべての列を右揃えにするのではなく、1 つの列だけを右揃えにします。

コードの抜粋を次に示します。

<asp:GridView ID="gvCustomer" AutoGenerateColumns="False" runat="server">
    <Columns>
        <asp:BoundField DataField="CustomerId" HeaderText="Customer Id" />

               (other fields here)

                <asp:TemplateField HeaderText="Contact Name" HeaderStyle-HorizontalAlign="Right" >
                    <ItemTemplate>
                            <asp:Label runat="server" ID="lblContactName" Text='<%# Eval("ContactName") %>' />
                    </ItemTemplate>
                    <ItemStyle HorizontalAlign="Right" />
                    <HeaderStyle HorizontalAlign="Right" />
                </asp:TemplateField>
    </Columns>
</asp:GridView>

どんな助けでも大歓迎です。ありがとう!

ニキ

4

7 に答える 7

7

1 コントロール GridView で定義できます

<HeaderStyle HorizontalAlign="Right" />

注:アイテムからタグを削除してください。彼はあなたの GridView コントロールにいる必要があります

そう

<asp:GridView ID="gvCustomer" AutoGenerateColumns="False" runat="server">
    <HeaderStyle  HorizontalAlign="Right" />
    .....
</asp:GridView>

2 または、アイテムで定義できます

<asp:TemplateField HeaderStyle-HorizontalAlign="Right">

注:このソリューションでは削除し <HeaderStyle HorizontalAlign="Right" />ます(アイテムではなくGridView内にある必要があります)

于 2012-10-09T15:39:34.080 に答える
2

私たちは同じ問題を抱えていますが、私はそれを克服することができます。

ここに私の解決策があります:D

<asp:TemplateField>
     <HeaderStyle Width="100px"/><ItemStyle Width="100px" />
     <HeaderTemplate>
         <div style="text-align:right;">Contact Name</div>
     </HeaderTemplate>
     <ItemTemplate>
        <asp:Label runat="server" ID="lblContactName" Text='<%# Eval("ContactName") %>' />
     </ItemTemplate>
</asp:TemplateField>
于 2016-04-17T06:43:50.393 に答える
1

私が見た例では、列ヘッダーの配置は、次を使用して特定の列に設定されています

<asp:BoundField DataField="CustomerId" HeaderStyle-HorizontalAlign="Right" />

しかし、それはテンプレートで既に使用したものと同等かもしれません:

<HeaderStyle HorizontalAlign="Right" />

それが機能しない場合、問題はヘッダーが整列されていないことではなく、ヘッダーのコンテンツが列の幅いっぱいに引き伸ばされているため、整列は問題にならない可能性があります。

たとえば、セル ヘッダーに text-align: left のキャプションが含まれており、そのキャプションの幅がコンテナーの 100% である場合、コンテナーの水平方向の配置は影響しません。

ここに画像の説明を入力

実験として、HeaderStyle の Width プロパティを小さい値に設定して、配置に影響があるかどうかを確認してください。

<HeaderStyle HorizontalAlign="Right" Width="50px" />

ここに画像の説明を入力

ヘッダーの Horizo​​ntalAlign が有効になるように、列のキャプション テキストに合わせてヘッダーのコンテナーをシュリンクラップする必要がある場合があります。

于 2012-10-09T15:46:24.797 に答える
1

うーん、Horizo​​ntalAlignment は私にとっては問題なく動作します。

この簡単なテストをまとめました。2 番目の列は field タグで Headerstyle-Horizo​​ntalAlign を使用し、3 番目の列は Horizo​​ntalAlign を含む別の HeaderStyle タグを使用していることに注意してください。どちらもうまくいきました。

<asp:GridView ID="gvThings" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="text" HeaderText="Text" ItemStyle-Width="200" />
        <asp:BoundField DataField="number1" HeaderText="Number 1" ItemStyle-Width="200" ItemStyle-HorizontalAlign="Right" HeaderStyle-HorizontalAlign="Right" />
        <asp:TemplateField HeaderText="Number 2" ItemStyle-Width="200" ItemStyle-HorizontalAlign="Right">
            <HeaderStyle HorizontalAlign="Right" />
            <ItemTemplate>
                <asp:Label ID="lblNumber2" runat="server" Text='<%# Eval("number2")%>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
 </asp:GridView>

あなたは正しい考えを持っていると思います。細部で間違いを犯しているだけです。おそらく、オーバーライドできないテーマが定義されていますか?

于 2012-10-09T16:01:42.103 に答える
0

これを試して..

int i=GridView3.HeaderRow.Cells.Count;
    GridView3.HeaderRow.Cells[0].HorizontalAlign = HorizontalAlign.Right;
于 2013-02-22T05:56:44.737 に答える