Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
Есть содранная из форума процедура: private void ShowMessageOkCancel(string message) { String scriptString = "<script language=JavaScript>"; scriptString += "confirm('" + message + "');"; scriptString += "</script>"; Page.RegisterStartupScript("ShowMessageOKCancel", scriptString); } В ряде случаев она не работает (действия, которые должны отменяться, выполняются до того, как происходит нажатие OK/Cancel). Вопрос: можно ли каким-то образом сделать так, чтоб она возвращала значения, которые впоследствии проверялись в if. И вообще, как выйти из такой ситуации. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 15:58 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
Ничего проверять не надо... Вот так это делается: Код: plaintext 1. 2. 3. 4. 5. 6. 7. "btnDelete" меняй на свою кнопку. -- nexus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:21 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
nexНичего проверять не надо... Вот так это делается: Код: plaintext 1. 2. -- nexus спасибо! Но у меня не кнопка, а свойство грида "DeleteCommand", в котором кроме всего, выполняется удаление записей подчиненной таблицы, а в начале выполняется проверка на незавершенность изменений: private void пкшв1_DeleteCommand(...) { if (IsChange != "NONE") { ShowMessageOK("Save or cancel your changes!"); } else { MsgOKCancel("вы действительно хотите удалить запись?"); // если да, то удаляем запись из главной таблицы // и все, что с ней связано из других таблиц } } Как действовать в таком случае? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 16:39 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
делаешь из столбца с кнопкой TemplateColumn. добавляешь id: Код: plaintext 1. 2. 3. 4. подписываешься на событие ItemDataBound в обработчике добавляешь код, предлодженный nex: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 18:08 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
profil: Спасибо, сейчас попробую! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 18:28 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
удачи ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2005, 18:29 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
попробовал. Частично работает, но при связывании грида с табличкой, заходит в этот обработчик событий и пытается выполнить содежимое. Что надо изменить в if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) чтобы содержимое if отрабатывалось только в случае нажатия на кнопку? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 14:06 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
если надо чото удалить из грида, то делаю так <asp:HyperLinkColumn DataNavigateUrlField="UID" DataNavigateUrlFormatString="javascript:dn('{0}')" DataTextField="UID" DataTextFormatString="<img src="delete.gif" alt="Удалить новость" border="0">"> <HeaderStyle HorizontalAlign="Center" CssClass="GRIDHEADERROW"></HeaderStyle> <ItemStyle CssClass="ROWDELIMITER1"></ItemStyle> </asp:HyperLinkColumn> <script language="javascript"> function dn(uid) { if (window.confirm('Вы уверены ?')) { void(window.open('../utils.aspx?Action=News&newsuid='+uid,'_self')); } } а в utils обрабатываю querystring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 14:18 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
question1попробовал. Частично работает, но при связывании грида с табличкой, заходит в этот обработчик событий и пытается выполнить содежимое. Что надо изменить в if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) чтобы содержимое if отрабатывалось только в случае нажатия на кнопку? Спасибо!?!?!?! код точно корректно работающий выложи свою реализацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 14:36 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
[quot profil ?!?!?! код точно корректно работающий выложи свою реализацию[/quot] дык, а кто говорит, что не работает? Просто в моем случае дополнительное условие нужно. Есть процедура protected void MyDataBinding() { cnMyConnect.Open(); SqlDataAdapter daTest = new SqlDataAdapter("SELECT * FROM Test", cnMyConnect); dsMySet = new DataSet(); daTest.Fill(dsMySet , "Test"); dgTest.DataSource = dsMySet ; dgTest.DataMember = "Test"; dgTest.DataBind(); dgTest.DataBind(); cnMyConnect.Close(); } вызываемая в Page_Load() и заполняющая грид конкретными данными. Вот, она вероятно и возбуждает событие ItemDataBound. Т.е. мне, если я правильно понимаю, надо в ItemDataBound проверку поставить, была ли нажата кнопка на удаление или нет. так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 15:34 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
question1дык, а кто говорит, что не работает? Просто в моем случае дополнительное условие нужно.ну так скажи чего за условие... может предложенный подход и вовсе не подойдет для его проверки question1Т.е. мне, если я правильно понимаю, надо в ItemDataBound проверку поставить, была ли нажата кнопка на удаление или нет. так?нет, не правильно понимаешь в ItemDataBound регистрируется клиентский скрипт, который при нажатии на кнопку выдает диалог подтверждения. И если пользователь нажал cancel форма вообще на сервер отправляться не будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 15:51 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
нет, не правильно понимаешь в ItemDataBound регистрируется клиентский скрипт, который при нажатии на кнопку выдает диалог подтверждения. И если пользователь нажал cancel форма вообще на сервер отправляться не будет ////////////////////////////////////////////////////////// у меня тут интересная фигня получается. Если после btn.Attributes.Add("onclick", ... идет cnConnect1.Open(); то при загрузке данными грида вылазит сообщение об ошибке - "соединение уже открыто" с указанием строки в этой процедуре(непонятно только почему и как оно туда заходит и если заходит, то почему не вызывается MessageBox?), а если я cnConnect1.Open(); комментирую (и все, что с ним связано) , то оно туда не заходит, потому как другие инструкции не выполняются. Реальный код выглядит так private void dgGrid1_ItemDataBound(object sender, ... { if (IsChange != "NONE") { ShowMessageOK("Save or cancel your changes!"); } else { lbUserName.Text = ""; if(e.Item.ItemType == ListItemType.Item || ...) { Button btn = (Button)e.Item.FindControl("btDel"); btn.Attributes.Add("onclick", .....); lbUserName.Text = "User ist gelöscht!!!"; cnConnect1.Open(); SqlCommand cmd = new SqlCommand(); string strQUERY = "DELETE FROM ... ... ... если я комментирую cnConnect1.Open(); - просто ничего не происходит, если нет - при считывании данных в грид возникает вышеупомянутая ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 17:18 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
забыл добавить, все вышесказанное касается момента, когда грид еще только заполняется данными. Вполне возможно, что при удалении все работает нормально (но я не могу это проверить...) пардон, за путанные объяснения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 17:22 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
question1, без обид, но ты написал полнейшую чушь.... поясняю: в ItemDataBound происходит привязка данных и формирование грида. в коде, который привел я, кнопка на удаление снабжается клиентским скриптом, для подтверждения этого удаления (сорри за каламбур) само удаление должно быть реализовано в обработчике события OnDeleteCommand ps. что ты хотел сказать этим: if (IsChange != "NONE") ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2005, 17:40 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
>>question1, без обид, но ты написал полнейшую чушь.... никаких обид. последний коммент был очень в тему! Наконец-то немного прояснилось, что делал и понимал не так, и как надо делать. Просто после WinForms писать на ASP несколько затруднительно (другая идеология все-таки), а литературы хорошей под рукой нет, а в инете лазить нет времени, вот и получается, что застреваю на базовых вещах. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 14:12 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
profil само удаление должно быть реализовано в обработчике события OnDeleteCommand Последний вопрос: чей обработчик события - OnDeleteCommand? Я так понял, что грида (dgGrid1_DeleteCommand?) но туда программа почему-то не заходит, несмотря на то, что я нажимаю "OK". Где зарыты грабли и на какую собаку я опять наступил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 14:26 |
|
||
|
Как получить результат нажатия кнопок "OK"/"Cancel" в MessageBox?
|
|||
|---|---|---|---|
|
#18+
question1Просто после WinForms писать на ASP несколько затруднительно (другая идеология все-таки)да, знакомо, проходили))) успехов в осовении новой идеологии ;-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2005, 14:45 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=996&tid=1394267]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 404ms |

| 0 / 0 |
