Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Как сделать недоступным кнопку на странице во время выполнения длительной операции? Чтобы пользователь многократно ее не жал. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:21 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
После исполнения всего кода в обработчике события, простой код: SapmleBtn.Enabled = false; по-моему все:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:29 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Dmitriy Dubrovskiy, Вы писали: DD>Как сделать недоступным кнопку на странице во время выполнения длительной операции? Чтобы пользователь многократно ее не жал. Спасибо. Я бы сделал перед выполнением операции ее недоступной: Button someButton; public function SomeLongOperationDO() { someButton.Enabled = false; // Some code for long operation START /*long operation*/ //Some code for long operation END someButton.Enabled = true; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:29 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
DaimondКак сделать недоступным кнопку на странице во время выполнения длительной операции? Чтобы пользователь многократно ее не жал. Спасибо. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:31 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Dmitriy Dubrovskiy, Вы писали: DD>Как сделать недоступным кнопку на странице во время выполнения длительной операции? Чтобы пользователь многократно ее не жал. Спасибо. длительная операция выполняется на клиенте или на сервере асинхронно после постбека? если первое — разворачивайте прозрачный див на весь экран :). Задизейблите эту кнопку — пользователь нажмет какую-то другую. Или ссылку. если второе — то можно серверным кодом, как тут и написали уже 3 человека... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 12:37 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
GhostBasterЗдравствуйте, Dmitriy Dubrovskiy, Вы писали: DD>Как сделать недоступным кнопку на странице во время выполнения длительной операции? Чтобы пользователь многократно ее не жал. Спасибо. Я бы сделал перед выполнением операции ее недоступной: Button someButton; public function SomeLongOperationDO() { someButton.Enabled = false; // Some code for long operation START /*long operation*/ //Some code for long operation END someButton.Enabled = true; } Оно, конечно, хорошо, вот только кнопка задисейблена не будет - не произойдет рендеринга страницы до окончания длинной операции. Я бы сделал так: 1. На кнопку вешается клиентское событие onClick, в котором кнопка делается недоступной. В конце ставится вызов __doPostBack('<имя кнопки>','') 2. В конце длительной обработки вообще ничего делать не придется - кнопка будет отрендерена как доступная. То есть имеем: 1. Клиентский код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 2. Серверный код: Код: plaintext 1. 2. 3. 4. 5. 6. В событии нажатия кнопки - та самая длительная операция, которая должна выполниться (если она, конечно, серверная) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 13:27 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, gerss, Вы писали: G>Оно, конечно, хорошо, вот только кнопка задисейблена не будет — не произойдет рендеринга страницы до окончания длинной операции. Совершенно верно. G>Я бы сделал так: G>1. На кнопку вешается клиентское событие onClick, в котором кнопка делается недоступной. В конце ставится вызов __doPostBack('<имя кнопки>','') G>2. В конце длительной обработки вообще ничего делать не придется — кнопка будет отрендерена как доступная. G>То есть имеем: G>1. Клиентский код: G><script> G> function disableButton() G> { G> document.getElementById('Button1').disabled = true; G> __doPostBack('Button1',''); G> } G></script> G>2. Серверный код: G>private void Page_Load(object sender, System.EventArgs e) G>{ G> ... G> Button1.Attributes["OnClick"] = "disableButton()"; G> ... G>} На форме у меня лежит Wizard. Так вот именно его нужно задизаблить после того как пользователь на нем кнопочку "Next" нажал. На эту кнопку я никак "Button1.Attributes["OnClick"] = "disableButton()";" не повешу. А как можно обновить страницу из серверного кода? Есть какой-нть Refresh, что ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 15:23 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
DD>На форме у меня лежит Wizard. Так вот именно его нужно задизаблить после того как пользователь на нем кнопочку "Next" нажал. На эту кнопку я никак "Button1.Attributes["OnClick"] = "disableButton()";" не повешу. А как можно обновить страницу из серверного кода? Есть какой-нть Refresh, что ли? Если нельзя повесить onclick, можно кнопку скрыть. Добавить свою кнопку со своим onclick, который будет делать еще hideButton.Click(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2006, 16:26 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, GhostBaster, Вы писали: GB> GB> Button someButton; GB> public function SomeLongOperationDO() GB> { GB> someButton.Enabled = false; GB> // Some code for long operation START GB> /*long operation*/ GB> //Some code for long operation END GB> someButton.Enabled = true; GB> } GB> Это не поможет. Всё, что вы написали будет обработано только во время PostBack'a. В итоге мы получаем, что вы кнопку включаете (кладётся false во ViewState), после чего включаете (кладётся true) во ViewState — у клиента вообще при этом ни чего не происходит. Для таких целей можно использовать: 1. Atlas Framework (UpdatePanel with partial rendering) + Custom Behaviour (вот точно не скажу, кажется уже есть готовый). Он-то и выключит кнопку. 2. JavaScript тут вы сами выключаете, а когда страница вернётся после Postback'a — она будет иметь то состояние, что вы выставили ей на сервере. 3. JavaScript & Ajax (тут уж всё зависит от задачи) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2006, 06:38 |
|
||
|
Как сделать недоступным кнопку (Control)
|
|||
|---|---|---|---|
|
#18+
Вообщем тут с визардами не всё так просто, как казалось бы. В последствии вы захотите ещё и валидацию проводить, придерживаясь рекомендаций по разработке UI. Один из них — это не включать кнопку, до тех пор пока всё не будет валидно (пример: регистрация Yandex.Mail) Мы для этих целей использовали целый набор всего что можно было найти, что бы получить подобный эфект именно в Wizard'e. Atlas Behaviors & Atlas Validators и много других извращений на тему. В вашем же случае, я рекомендовал бы описать CustomNavigationTemplate и вот там уже и назначить OnClientClick ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2006, 06:43 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=33929995&tid=1390442]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 364ms |

| 0 / 0 |
