Попробуйте добавить 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);
}
Надеюсь, это поможет.