ASP.NET Добавить столбец в Gridview - PullRequest
2 голосов
/ 23 сентября 2011

У меня есть сетка, которая отображает данные из базы данных с использованием LINQ to SQL.

AssetDataContext db = new AssetDataContext();
equipmentGrid.DataSource = db.equipments.OrderBy(n => n.EQCN);

Мне нужно добавить столбец в конце girdview, в котором будут ссылки для редактирования / удаления / просмотра строки. Мне нужно, чтобы ссылка была "http://localhost/edit.aspx?ID=" + idOfRowItem.

1 Ответ

3 голосов
/ 23 сентября 2011

Попробуйте добавить TemplateField в свой GridView, например, так:

<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <a href="http://localhost/edit.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "id") %>">Edit</a>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>

В шаблоне элемента вы можете размещать любые понравившиеся ссылки и привязывать любые данные, которые вы хотите, к ним из вашего источника данных.В приведенном выше примере я только что вытащил значение из столбца с именем id.

При нынешнем состоянии это будет работать нормально, однако столбец выше будет выровнен по левому краю в GridView со всеми автоматически сгенерированными столбцами.right.

Чтобы исправить это, вы можете добавить обработчик для события RowCreated и переместить столбец справа от автоматически сгенерированных столбцов, например:

gridView1.RowCreated += new GridViewRowEventHandler(gridView1_RowCreated);

...

void gridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
    GridViewRow row = e.Row;
    TableCell actionsCell = row.Cells[0];
    row.Cells.Remove(actionsCell);
    row.Cells.Add(actionsCell);
}

Надеюсь, это поможет.

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