Как вставить столбец в сетке после автоматически сгенерированных столбцов - ASP.NET - PullRequest
8 голосов
/ 02 августа 2011

Это мой гридвью:

<asp:GridView ID="gridview" runat="server" AutoGenerateColumns="true">
    <Columns>
        <asp:TemplateField HeaderText="TestColumn">
            <ItemTemplate>
                <asp:LinkButton ID="lkbtn" runat="server" Text="Edit"
                    CommandName="Update" CausesValidation="False" ToolTip="Edit" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

TestColumn заканчивается первым столбцом, но я хочу его после автоматически сгенерированных.

Ответы [ 3 ]

2 голосов
/ 24 июля 2016

В обработчике события RowDataBound вы можете переместить ячейку TemplateField из первого столбца в конец строки:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    TableCell cell = e.Row.Cells[0];
    e.Row.Cells.RemoveAt(0);
    e.Row.Cells.Add(cell);
}
0 голосов
/ 21 сентября 2015

Боюсь, это может быть невозможно. Прочитайте MS документацию :

Вы также можете комбинировать явно объявленные поля столбца с автоматически генерируемые поля столбцов. Когда оба используются явно объявленные поля столбцов отображаются первыми, а затем автоматически генерируемые поля столбцов. Автоматически сгенерированный предел поля столбца не добавляются в коллекцию Columns.

0 голосов
/ 02 августа 2011

Вы устанавливаете AutoGenerateColumnProperty в false, а затем вы упорядочиваете свои столбцы, как вам нравится.

Если вы просто хотите добавить кнопку редактирования, вы должны использовать:

<asp:CommandField ShowEditButton="True" />

Вот пример использования базы данных северного ветра

<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="False"
DataKeyNames="ProductID"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
<asp:BoundField DataField="ProductName" HeaderText="ProductName"/>
<asp:BoundField DataField="SupplierID" HeaderText="SupplierID" />
<asp:BoundField DataField="CategoryID" HeaderText="CategoryID"/>
<asp:BoundField DataField="QuantityPerUnit" HeaderText="QuantityPerUnit"/>
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" />
<asp:BoundField DataField="UnitsInStock" HeaderText="UnitsInStock" />
<asp:BoundField DataField="UnitsOnOrder" HeaderText="UnitsOnOrder" />
<asp:BoundField DataField="ReorderLevel" HeaderText="ReorderLevel" />
<asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued"/>
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...