Обновление Gridview Edit Удалить, щелкнув строку Asp.netC#

Место общения программистов C#
Ответить
Anonymous
 Обновление Gridview Edit Удалить, щелкнув строку Asp.net

Сообщение Anonymous »

Кнопка «Обновить и отменить» не работает, и эти кнопки находятся за пределами представления сетки.

Сценарий:
Проблема с дизайном сетки 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»