Здравствуйте, TK, Вы писали:
TK>Hello, "Gollum"
>> >> TK>А что мешает указать для кнопки нужный css с client behavior? >> >> , уже советовали сделать вот так: Re[15]: DataGrid
TK>Ну, css в этом плане более элегантен.
TK><asp:button runat="server" style="behavior: url(confirm.htc)" /> TK>или классом TK><asp:button runat="server" CssClass="confirmButton" />
Здравствуйте, mogadanez, Вы писали:
TK>>Ну, css в этом плане более элегантен.
TK>><asp:button runat="server" style="behavior: url(confirm.htc)" /> TK>>или классом TK>><asp:button runat="server" CssClass="confirmButton" />
M>htc для такой задачи.... :)) :))
1. Клиентские вещи нужно делать клиентскими вещами
2. Добавление скриптовых обработчиков в CodeBehind это тоже не лучший стиль.
Обычно его используют для отделения данных от представления, и использовать его для добавления скриптов (типичное представление) видится ошибочным
3. Серверный элемент управления также может добавлять обработчик для onclick. В этом случае использование Control.Attributes.Add ("onclick", "...") будет служить испточником доболнительных проблем.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, TK, Вы писали:
TK>><asp:button runat="server" style="behavior: url(confirm.htc)" />
G>Это по-моему только на эксплорере будет работать
TK>>или классом TK>><asp:button runat="server" CssClass="confirmButton" />
G>В общем случае да, но если такая кнопка совсем одна, то можно и не морочиться с CSS
Спасибо Всем кто принял участие в обучении новичка. Всё получилось!!! Приятно иметь дело с профи.
Hello, "Gollum" > > TK><asp:button runat="server" style="behavior: url(confirm.htc)" /> > > Это по-моему только на эксплорере будет работать >
Для прочих браузеров есть аналогичные технологии.
> TK>или классом > TK><asp:button runat="server" CssClass="confirmButton" /> > > В общем случае да, но если такая кнопка совсем одна, то можно и не морочиться с CSS
Одна или нет — не принципиально. Главное это подход. Сейчас одна, а завтра 21 — где критерий когда нужно начать переписывать собственные наработки? IMHO — нужно сразу делать так, что-бы потом было легче...
Да и HTC более чем простой...
<PUBLIC:ATTACH EVENT="onclick" ONEVENT="onClickConfirm()" />
<script language="javascript">
<!--
function onClickConfirm()
{
if (window.confirm("Delete?") == false)
{
if (window.event != null)
{
window.event.returnValue = false;
}
}
}
//-->
</script>
Posted via RSDN NNTP Server 1.6
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, mogadanez, Вы писали:
TK>>>Ну, css в этом плане более элегантен.
TK>>><asp:button runat="server" style="behavior: url(confirm.htc)" /> TK>>>или классом TK>>><asp:button runat="server" CssClass="confirmButton" />
M>>htc для такой задачи....
TK>1. Клиентские вещи нужно делать клиентскими вещами TK>2. Добавление скриптовых обработчиков в CodeBehind это тоже не лучший стиль. TK> Обычно его используют для отделения данных от представления, и использовать его для добавления скриптов (типичное представление) видится ошибочным TK>3. Серверный элемент управления также может добавлять обработчик для onclick. В этом случае использование Control.Attributes.Add ("onclick", "...") будет служить испточником доболнительных проблем. TK>
Здравствуйте, TK, Вы писали:
TK>Для прочих браузеров есть аналогичные технологии.
Да, но htc они не поймут
>> В общем случае да, но если такая кнопка совсем одна, то можно и не морочиться с CSS
TK>Одна или нет — не принципиально. Главное это подход. Сейчас одна, а завтра 21 — где критерий когда нужно начать переписывать собственные наработки? IMHO — нужно сразу делать так, что-бы потом было легче...
Согласен.
TK>Да и HTC более чем простой...
Именно потому что простой, лучше сделать эту функциональность через более поддерживаемые технологии.
З.Ы. Из всего вышеприведенного, вариант с CssClass мне нравится больше всего.
Здравствуйте, TK, Вы писали:
TK>Hello, "Gollum" >> >> TK>Для прочих браузеров есть аналогичные технологии. >> >> Да, но htc они не поймут >>
TK>Есть XBL: http://www.mozilla.org/projects/xbl/xbl.html TK>Так-же управляется из CSS.
придется делать два варианта, проверку браузера....
Здравствуйте, mogadanez, Вы писали:
TK>>Есть XBL: http://www.mozilla.org/projects/xbl/xbl.html TK>>Так-же управляется из CSS.
M>придется делать два варианта, проверку браузера....
Со скриптами такое часто бывает...
Либо делать чтобы работало во всех браузерах (не всегда удобно), либо под каждый свою версию.
А вот проверку браузера делать не обязательно — если браузер не знает о стиле, то он будет его просто игнорировать.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
M>>он вроде соответсвует всем трем пунктам
TK>А теперь представим, что на странице не только confirm для удаления, но и используется несколько валидаторов из ASP.NET?
при использовании серверной валидации никаких проблем не возникнет. с клиентской, можно придумать вариант обхода, я уверен.
Вообще я разочаровался в валидаторах. уж очень они непродуманы и недоделаны до ума.
Здравствуйте, K_Sergey, Вы писали:
K_S>Есть небольшое ASP.NET приложение, в котором размещены грид и управляющие кнопки (Добавить, Изменить, Удалить). Кнопки не являются стандартными кнопками грида.(ImageButton). При удалении записи необходимо подтверждение на удаление. Запись: button.Attributes.Add ("onclick","return confirm (\"Are you sure?\");"); выполняется, но ничего не происходит. Как добится подтверждения удаления? Как использовать диалоговые окна в ASP.NET если вообще они существуют?
K_S>Куча примеров на подтверждение удаления, но они все основаны на встроенных кнопках грида.
K_S>Помогите новичку, очень надо. Спасибо за ответ.
Здравствуйте, K_Sergey, Вы писали:
K_S>Здравствуйте, uzzy, Вы писали:
U>>Здравствуйте, K_Sergey, Вы писали:
K_S>>>Есть небольшое ASP.NET приложение, в котором размещены грид и управляющие кнопки (Добавить, Изменить, Удалить). Кнопки не являются стандартными кнопками грида.(ImageButton). При удалении записи необходимо подтверждение на удаление. Запись: button.Attributes.Add ("onclick","return confirm (\"Are you sure?\");"); выполняется, но ничего не происходит. Как добится подтверждения удаления? Как использовать диалоговые окна в ASP.NET если вообще они существуют? U>>Почитай, внимательно примеры со стандартными кнопками грида, тода может ты поймешь, что диалоговые окна, это удел не ASP.NET а Javascript-a (что является принципиально разными вещами). U>>А теперь по существу: все что тебе нужно при получении привального ответа от confirm, выполнить такую строчку U>>
U>>window.document.forms[0].submit ();
U>>
U>>в javascript-e. то есть твоя строчка будет выглядеть примерно так: U>>
U>>button.Attributes.Add ("onclick","javascript: if confirm (\"Are you sure?\") window.document.forms[0].submit ();");
U>>
U>>P.S. ошибки в посте возможны, писалось на скорую руку, но суть вроде бы правильна
K_S>Здравствуйте uzzy. K_S>Спасибо за терпение.
K_S>private void cmdTypeReportDel_Click(object sender, System.Web.UI.ImageClickEventArgs e) K_S> { K_S> cmdTypeReportDel.Attributes.Add ("onclick","javascript: if confirm (\"Are you sure?\") window.document.forms[0].submit ();");
K_S>string keyID=ViewState["strFildTypeReport"].ToString(); K_S> if (keyID != "0") K_S> { K_S> //строка подключения для активизации класса K_S> DBModifier bd = new DBModifier(DBProvider.ConnectionString); K_S> //создание массива для передачи в класс K_S> if (bd.meDelete ("tblTypeReport","TypeReportServerID",keyID) != false) K_S> { K_S> ViewState["strFildTypeReport"]="0"; K_S> txtTypeReport.Text = ""; K_S> //тип отчёта K_S> string strSQL = stringSQL((int)ViewState["PageNumTypeReport"],"tblTypeReport","TypeReportServerID"); K_S> stConnect ((int)ViewState["PageNumTypeReport"],strSQL,dgTypeReport,"TypeReportServerID","strFildTypeReport", txtTypeReport); K_S> } K_S> }
K_S>}
K_S>После вставки Вашей строки происходит удаление без всякого запроса, и в добавок вывалилось сообщение об ошибке (Нехватает ")" совсем в левой строке)?