Вопрос в следующем: у меня есть на страничке GridView. Мне нужно с его помощью удалять записи из таблицы(с этим проблем нет), а вот как сделать чтобы при нажатии на delete(который стандартно генерится) вылезло окошко для подтверждения на удаление, можно ли там как нибуть впихнуть клиентский скрипт?
Здравствуйте, Александер Малафеев, Вы писали:
АМ>Вопрос в следующем: у меня есть на страничке GridView. Мне нужно с его помощью удалять записи из таблицы(с этим проблем нет), а вот как сделать чтобы при нажатии на delete(который стандартно генерится) вылезло окошко для подтверждения на удаление, можно ли там как нибуть впихнуть клиентский скрипт?
добавляй на пререндер клиентский скрипт кнопке делит
Здравствуйте, Drussgad, Вы писали:
D>Здравствуйте, Александер Малафеев, Вы писали:
АМ>>Вопрос в следующем: у меня есть на страничке GridView. Мне нужно с его помощью удалять записи из таблицы(с этим проблем нет), а вот как сделать чтобы при нажатии на delete(который стандартно генерится) вылезло окошко для подтверждения на удаление, можно ли там как нибуть впихнуть клиентский скрипт?
D>добавляй на пререндер клиентский скрипт кнопке делит
сори, но скорее всего для стандартной кнопки не получится...надо делать темлпейт колумн и уже для него генерить скрипт
Здравствуйте, gone_gone, Вы писали:
_>Я создал свой класс:[vb] public class DeleteLinkButton : LinkButton
А как отловить нажатие этой кнопки и узнать номер ряда для которого эта кнопка нажата?
_>данное сообщение получено с www.gotdotnet.ru _>ссылка на оригинальное сообщение
Re: GridView (ASP.NET 2.0)?
От:
Аноним
Дата:
19.12.05 10:49
Оценка:
А чем отличается, если ты нажимаешь просто, возвращаешь true и удаляешь, и нажимаешь, подтверждаешь, возвращаешь true и удаляешь?
Что изменилось?
Попробуй...
Здравствуйте, gone_gone, Вы писали:
_>А чем отличается, если ты нажимаешь просто, возвращаешь true и удаляешь, и нажимаешь, подтверждаешь, возвращаешь true и удаляешь? _>Что изменилось? _>Попробуй...
Дурацкий конечно вопрос: а как заменить LinkButton на твой:
я делал следующим образом: добавил стандартный Delete link, сконвертил его в шаблон, и в коде заменил LinkButton на DeleteLinkButton у меня выдает ошибку, GridView1:Unknown server tag 'asp:DeleteLinkButton'.
Как надо правильно делать?
Здравствуйте, manger, Вы писали:
M>А так не подойдёт? M>Сначала ковертируешь CommandField в TemplateField, а затем добавляешь вызов клиентского скрипта:
M><asp:ImageButton ID="btnDelete" runat="server" CommandName="Delete" ImageUrl="~/Images/delete.png" ToolTip="Delete" onClientClick="return confirm('Удалить запись?');" />
Да, само-то, спасибо!
Protected Sub Grid_RowCreated(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
Dim lnkBtn As LinkButton = CType(e.Row.FindControl("btnDelete"), LinkButton)
If Not (lnkBtn Is Nothing) Then
'If (lnkBtn.CommandName = "delete") Then
lnkBtn.Attributes.Add("onclick", "return confirm('Удалить запись?')")
'End If
End If
End Sub
Может тема уже и заезженная, но у меня возник такой вопрос.
Есть код, кторый цепляет на контрол из стандартного CommandField подтверждение:
public static void AddConfirmDelete(GridView gv, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
foreach (DataControlField dcf in gv.Columns)
{
CommandField cf = dcf as CommandField;
if (cf != null)
{
TableCell cell = e.Row.Cells[gv.Columns.IndexOf(dcf)];
foreach (Control ctl in cell.Controls)
{
switch (cf.ButtonType)
{
case ButtonType.Button:
if (ctl is Button && ((Button)ctl).Text == cf.DeleteText)
{
Button btn = (Button)ctl;
//btn.OnClientClick = "return confirm(\"Are you sure?\")";
btn.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
}
break;
case ButtonType.Image:
if (ctl is ImageButton && ((ImageButton)ctl).ImageUrl == cf.DeleteImageUrl)
{
ImageButton ib = (ImageButton)ctl;
//ib.OnClientClick = "return confirm(\"Are you sure?\")";
ib.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
}
break;
case ButtonType.Link:
if (ctl is LinkButton && ((LinkButton)ctl).Text == cf.DeleteText)
{
LinkButton lb = (LinkButton)ctl;
lb.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
}
break;
}
}
}
}
}
}
Так вот, когда тип кнопок стоит ButtonType.Link в этой колонке, то все работает. А если Image или Button, то спрашивает подтверждение, а удалять не удаляет. В дебаге событие не срабатывает. Может кто-то колупался уже с таким???
Здравствуйте, BlackHawk, Вы писали:
BH>Может тема уже и заезженная, но у меня возник такой вопрос. BH>Есть код, кторый цепляет на контрол из стандартного CommandField подтверждение:
public static void AddConfirmDelete(GridView gv, GridViewRowEventArgs e)
BH> {
BH> if (e.Row.RowType == DataControlRowType.DataRow)
BH> {
BH> foreach (DataControlField dcf in gv.Columns)
BH> {
BH> CommandField cf = dcf as CommandField;
BH> if (cf != null)
BH> {
BH> TableCell cell = e.Row.Cells[gv.Columns.IndexOf(dcf)];
BH> foreach (Control ctl in cell.Controls)
BH> {
BH> switch (cf.ButtonType)
BH> {
BH> case ButtonType.Button:
BH> if (ctl is Button && ((Button)ctl).Text == cf.DeleteText)
BH> {
BH> Button btn = (Button)ctl;
BH> //btn.OnClientClick = "return confirm(\"Are you sure?\")";
BH> btn.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
BH> }
BH> break;
BH> case ButtonType.Image:
BH> if (ctl is ImageButton && ((ImageButton)ctl).ImageUrl == cf.DeleteImageUrl)
BH> {
BH> ImageButton ib = (ImageButton)ctl;
BH> //ib.OnClientClick = "return confirm(\"Are you sure?\")";
BH> ib.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
BH> }
BH> break;
BH> case ButtonType.Link:
BH> if (ctl is LinkButton && ((LinkButton)ctl).Text == cf.DeleteText)
BH> {
BH> LinkButton lb = (LinkButton)ctl;
BH> lb.Attributes.Add("onclick", "return confirm(\"Are you sure?\")");
BH> }
BH> break;
BH> }
BH> }
BH> }
BH> }
BH> }
BH> }
BH> Так вот, когда тип кнопок стоит ButtonType.Link в этой колонке, то все работает. А если Image или Button, то спрашивает подтверждение, а удалять не удаляет. В дебаге событие не срабатывает. Может кто-то колупался уже с таким???
BH>данное сообщение получено с www.gotdotnet.ru BH>ссылка на оригинальное сообщение
Здравствуйте, manger, Вы писали:
M>А так не подойдёт? M>Сначала ковертируешь CommandField в TemplateField, а затем добавляешь вызов клиентского скрипта:
M><asp:ImageButton ID="btnDelete" runat="server" CommandName="Delete" ImageUrl="~/Images/delete.png" ToolTip="Delete" onClientClick="return confirm('Удалить запись?');" />
M>данное сообщение получено с www.gotdotnet.ru M>ссылка на оригинальное сообщение
Вот други,... у меня похожая проблема была . но с началом разобрался своими силами...
терь вопрос
сам линк в гриде выглядит так
то есть делит своими ручками добавлял.
терь вопрос. выдаёт ошипку "The server tag is not well formed."
на строчку OnClientClick
где я туплю?
заранее спасибо.
K>то есть делит своими ручками добавлял. K>терь вопрос. выдаёт ошипку "The server tag is not well formed." K>на строчку OnClientClick K>где я туплю? K>заранее спасибо.
спасибо... разрулил ещё вчера, забыл отписаться... \
в итоге сделал так