ASP.NET установить максимальный размер столбца GridView - PullRequest
4 голосов
/ 25 ноября 2011

Я использую ASP.NET C # на VS2005.

У меня есть таблица GridView со столбцом с именем Description, и поскольку ввод всегда очень длинный, описание очень длинное по горизонтали.

Я бы хотел, чтобы GridView имел максимальный размер ширины для всех столбцов.

Я пробовал много способов, но ни один из них не работал.

ItemStyle-Width="50px",

HeaderStyle-BorderWidth="50px"

HeaderStyle-Width="50px",

RowStyle-Width="50px"

Width="50px"

Ниже приведен фрагмент кода моего GridView:

<asp:GridView ID="GridView1" AutoGenerateEditButton="True" ondatabound="gv_DataBound" runat="server" DataSourceID="SqlDataSource1">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:CheckBox ID="UserSelector" OnCheckedChanged="UserSelector_CheckedChanged" ondatabound="gv_DataBound" runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Кто-нибудь знает, как настроить размер столбцов GridView в зависимости от ситуации?

Ответы [ 3 ]

4 голосов
/ 10 апреля 2013

Так я контролирую ширину столбца.

1.Добавьте CSS в шапку.

<style type="text/css">
    .maxWidthGrid
    {
        max-width: 300px;
        overflow: hidden;
    }
</style>

2. Затем используйте CSS в необходимых столбцах, как это ItemStyle-CssClass="maxWidthGrid"

<asp:BoundField ItemStyle-CssClass="maxWidthGrid" DataField="ClientName" HeaderText="Client Name"
                    ReadOnly="True" SortExpression="ClientName" />
3 голосов
/ 25 ноября 2011

Я изменил свой код, это то, о чем ты думаешь?

        <RowStyle Width="150px"/>

Снять все тайники

<asp:TemplateField><ItemTemplate> </ItemTemplate></asp:TemplateField>

и просто используйте простые

<columns> </columns>

Здесь я думаю, что ваш код будет выглядеть как AutoGenerateColumns = "True" или false, не имеет значения

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true" DataSourceID="SqlDataSource1">
         <Columns>
            <asp:CheckBox ID="UserSelector" OnCheckedChanged="UserSelector_CheckedChanged" ondatabound="gv_DataBound" runat="server" />
        </Columns>
        <RowStyle Width="150px"/>
    </asp:GridView>
1 голос
/ 25 ноября 2011

вы можете обработать событие RowDataBound.

protected int widestData;
protected void GridView1_RowDataBound(object sender, 
    GridViewRowEventArgs e)
{
    System.Data.DataRowView drv;
    drv = (System.Data.DataRowView)e.Row.DataItem;
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
      if (drv != null)
      {
        String catName = drv[1].ToString();
        Response.Write(catName + "/");

        int catNameLen = catName.Length;
        if (catNameLen > widestData)
        {
          widestData = catNameLen;
          GridView1.Columns[2].ItemStyle.Width =
            widestData * 30;
          GridView1.Columns[2].ItemStyle.Wrap = false;
        }

      }
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    widestData = 0;
}

Установите этот флажок Как: динамически установить ширину столбца элемента управления веб-сервера GridView для получения более подробной информации.

, если для свойства gridview autogeneratecolumns установлено значение falseи вы создаете custom columns, тогда вы можете использовать templatefileds, где вы можете реализовать Table и Div для управления шириной столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...