Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Ширина GridView и его колонок


Автор: xivman 2.11.2010, 14:40
Есть GridView:
Код

                            <asp:GridView ID="GVDPayments" runat="server"
                                AutoGenerateColumns="False"
                                Width="100%"
                                BorderWidth="1px"
                                BorderColor="Silver"
                                PageSize="20"
                                ShowFooter="True"
                                AllowSorting="True"
                                AllowPaging="True"
                                PagerSettings-Position="TopAndBottom"
                                CellPadding="1"
                                EmptyDataRowStyle-BorderColor="Silver"
                                EmptyDataRowStyle-BackColor="#EFEFEF"
                                EmptyDataText="Информация отсутствует"
                                DataSourceID="linqDeferedPayments"
                                DataKeyNames="PAY_ID, DREID"
                                OnSelectedIndexChanged="GridView_SelectedIndexChanged"
                                OnRowDataBound="GridView_RowDataBound">
                                <HeaderStyle
                                    BackColor="#E2E2E2"
                                    BorderStyle="Solid"
                                    ForeColor="#2e4d7b"
                                    BorderWidth="1px"
                                    Font-Italic="False"
                                    Font-Strikeout="False"
                                    Font-Underline="False"
                                    Font-Overline="False"
                                    Font-Bold="False">
                                </HeaderStyle>
                                <PagerSettings Position="TopAndBottom" />
                                <EmptyDataRowStyle BackColor="#EFEFEF" BorderColor="Silver" />
                                <Columns>
                                    <asp:BoundField DataField="FIELD1" HeaderText="Хидер1" SortExpression="FIELD1" />
                                    <asp:BoundField DataField="FIELD2" HeaderText="Хидер2" SortExpression="FIELD2" />
                                    <asp:BoundField DataField="FIELD3" HeaderText="Хидер3" SortExpression="FIELD3">
                                        <ItemStyleWidth="800px" Height="100px" CssClass="width800"/>
                                    </asp:BoundField>                                  

                                </Columns>
                            </asp:GridView>


Колонки генерятся автоматически.

Есть проблема: если в какой-то ячейке данный выводятся одной беспробельной строкой, то таблица разъезжается, а свойство width игнорируется в любом виде.

Пробовал делать так:
Код

                                    <asp:BoundField DataField="FIELD3" HeaderText="Хидер3" SortExpression="FIELD3">
                                        <ItemStyle BackColor="Aqua" Width="1000px" Height="100px" CssClass="width800"/>
                                    </asp:BoundField>

Что интересно, бэкколор и высота отрабатывают, а ширина не срабатывает ни от Width="1000px", ни от css-свойства.

Пробовал через JavaScript, как описано вот http://www.rsdn.ru/forum/dotnet.web/3253968.all.aspx. Не помогло.

Тестировал и как-нибудь вот так:
Код

    protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
            e.Row.Cells[1].Style.Add("width","700px");
    }


Вопрос: Как вручную задать мЕньшую ширину колонки?
Помогите, если кто знает!!! Гуглинг не помог совсем...

Заранее благодарен.

Автор: Экскалупатор 2.11.2010, 16:06
попробуй положить грид в div. у меня было тоже что колонки разъезжались, после этого перестали.

Автор: A5uKa 3.11.2010, 08:40
Код

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        If (e.Row.Cells.Count > 1) Then
            e.Row.Cells(1).CssClass = "wide"


Код

.wide 
{
    max-width:200px;
}


может так ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)