Сценарий:
Проблема с дизайном сетки asp.net по умолчанию заключается в том, что столбец редактирования GridView всегда занимает некоторую площадь экрана. Кроме того, в режиме редактирования GridView расширяется по горизонтали, нарушая макет страницы. вот почему я хочу визуализировать редактируемый GridView без отображения кнопок «Редактировать», «Обновить» и «Отмена» по умолчанию.
Пример:

Что я сделал уже
когда вы увидите html-источник Gridview, вы найдете следующую кнопку «Редактировать», «Обновить», «Отменить ссылку» с событием под названием dopostback
e.g
[url=javascript:__doPostBack(ctl00$ContentPlaceHolder1$GridView2;Edit${1};)]Edit[/url]
Если вы каким-то образом сгенерируете тот же сценарий, описанный выше, и выполните его для какого-либо события на стороне клиента (например, нажатия кнопки), то вы, по сути, сможете отправить те же команды в элемент управления GridView. Самый простой способ сделать это — обработать событие RowDataBound элемента управления GridView, поэтому я решил использовать его в событии RowDataBound элемента управления Gridview, как показано ниже:
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.RowIndex == GridView2.EditIndex)
{
//update or cancel buttons
LinkButton updateBtn = (LinkButton)e.Row.Cells[0].Controls[0];
string updateScript = ClientScript.GetPostBackClientHyperlink(updateBtn, "");
Button1.Attributes["onclick"] = updateScript;
string cancelScript = string.Format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView2','Cancel${1}')",
GridView1.ID, e.Row.RowIndex);
Button2.Attributes["onclick"] = cancelScript;
}
else
{
//edit button
string editScript = string.Format("javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridView2','Edit${1}')",
GridView1.ID, e.Row.RowIndex);
e.Row.Attributes["onclick"] = editScript;
}
}
if (GridView2.EditIndex >= 0)
{
Button1.Enabled = true;
Button2.Enabled = true;
}
else
{
Button1.Enabled = false;
Button2.Enabled = false;
}
}
Теперь, когда я нажимаю на любую строку GridView, она становится редактируемой строкой, которую следует отменить и обновить с помощью кнопок отмены и обновления, которые находятся за пределами GridView, но они не работают...
Будем признательны за любую помощь или предложение.
Примечание: все равно вам нужно включить кнопку редактирования, обновления, отмены в Gridview, которая позже вы можете скрыться из сетки, используя сценарий, такой как jquery ниже.
например,
$(document).ready(function () {
$("#GridView2 th:first-child").hide();
$("#GridView2 td:first-child").hide();
});
Подробнее здесь: https://stackoverflow.com/questions/238 ... ck-asp-net
Мобильная версия