2

5 つの列がgridviewあり、最後の列は一部のメンバーのみに表示されます。最後の列gvMessageList.Columns[4]が見えない場合、パーセンテージでの幅を最初の列に指定する必要がありますgvMessageList.Columns[0]

どうすればそれが可能か教えてください。

GridViewは次のとおりです。

<asp:GridView ID="gvMessageList" runat="server" Width="100%" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true"
    DataKeyNames="MESSAGE_ID" CellPadding="4" PageSize="51" EmptyDataText="No Records Found." OnSorting="gvMessageList_Sorting"
    OnPageIndexChanging="gvMessageList_PageIndexChanging" OnRowDataBound="gvMessageList_RowDataBound" GridLines="None"
    CssClass="table table-bordered table-condensed table-hover table-striped">
    <Columns>
        <asp:TemplateField HeaderText="Subject" HeaderStyle-Width="30%" SortExpression="MESSAGE_SUBJECT" HeaderStyle-BackColor="#D9EDF7"
            HeaderStyle-ForeColor="#0088CC">
            <ItemTemplate>
                <asp:HyperLink ID="hlnkMessageSubject" runat="server" Text='<%# ((System.Data.DataRowView)Container.DataItem)["MESSAGE_SUBJECT"] %>'
                    NavigateUrl='<%# ((System.Data.DataRowView)Container.DataItem)["MESSAGE_URL"] %>'>
                </asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="From" HeaderStyle-Width="14%" SortExpression="MESSAGE_FROM" HeaderStyle-BackColor="#D9EDF7"
            HeaderStyle-ForeColor="#0088CC">
            <ItemTemplate>
                <asp:HyperLink ID="hlinkUser" runat="server" Text='<%#((System.Data.DataRowView)Container.DataItem)["MESSAGE_FROM"] %>'
                    NavigateUrl='<%#((System.Data.DataRowView)Container.DataItem)["FROM_URL"] %>'>
                </asp:HyperLink>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="CREATION_DATE" HeaderText="On" HeaderStyle-Width="15%" HeaderStyle-BackColor="#D9EDF7" HeaderStyle-ForeColor="#0088CC"
            SortExpression="CREATION_DATE" />
        <asp:TemplateField HeaderText="To" HeaderStyle-Width="21%" HeaderStyle-BackColor="#D9EDF7" HeaderStyle-ForeColor="#0088CC">
            <ItemTemplate>
                <asp:Label ID="lblTo" runat="server">
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Broadcast" HeaderStyle-Width="20%" Visible="false" HeaderStyle-BackColor="#D9EDF7" HeaderStyle-ForeColor="#0088CC">
            <ItemTemplate>
                <asp:Label ID="lblBroadcast" runat="server">
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

C# コードビハインドの場合:

ここで最初の列のパーセンテージを増やしたい:

gvMessageList.Columns[4].HeaderStyle.Dispose();
gvMessageList.Columns[4].Visible = false;

などを使用することで可能ですかgvMessageList.Columns[0].HeaderStyle.Width = ??

4

2 に答える 2

5

width プロパティに新しい単位タイプを指定します。最初のパラメーターは必要な幅で、2 番目のパラメーターは使用する測定値です。以下のサンプルでは、​​テーブルの幅の 50% になるように列を指定しています。

gvMessageList.Columns[4].HeaderStyle.Width = New Unit(50, UnitType.Percentage);
于 2013-11-14T08:33:08.120 に答える
1

次のように幅を変更できます

 GrdDynamic.Columns[4].ItemStyle.Width=Unit.Pixel(500);
 GrdDynamic.Columns[4].ItemStyle.Width=New Unit(50, UnitType.Percentage);
于 2013-11-14T08:33:14.657 に答える