Как написать код для кнопки, которая должна срабатывать одновременно при обоих событиях onclick и onclientclick одним щелчком мыши
я пишу код для события button onclient с js для печати веб-страницы и события onclick для создания pdf-файла и его загрузки ..и то, и другое должно быть сделано в одном действии..
но когда я отменяю печать, которую я onclient click event, то oncick event срабатывает .
Что я уже пробовал:
<script type="text/javascript"> function PrintPage() { window.print(); return true; } </script>
<asp:Button ID="Button3" runat="server" Text="PTPDF" UseSubmitBehavior="false" OnClick="Button3_Click1" OnClientClick ="javascript:PrintPage();" /> </div>
protected void Button3_Click1(object sender, EventArgs e) {//here is the code for pdf generation, this code must get fired automatically after onclient click event without users action}
Thomas Nielsen - getCore
Ну у вас не может быть ни одного действия как на сервере так и на клиенте :)
клиент визуализирует javascript в вашем браузере, а сервер (runat='server') экземпляр элементов управления происходит между запросом/сообщением и ответом
F-ES Sitecore
Любая попытка автоматизировать или контролировать печать на стороне клиента обречена на провал, она просто не поддерживается.
saimanisha
Итак, каково же решение, если мы хотим предоставить клиенту возможность печати?.
F-ES Sitecore
У клиента это уже есть...функция печати их браузера. Если они хотят что-то напечатать, то могут.
saimanisha
мое требование заключается в том, что я написал функцию для печати, которая является клиентской стороной и генерацией pdf с опцией загрузки на стороне сервера ..вот почему я использовал onlick и onclientclick events..is есть возможность работать с обоими событиями одновременно, одно за другим, одним щелчком мыши .
F-ES Sitecore
Если вы хотите дать опцию печати, а также запустить загрузку файла, то вам лучше сделать это одновременно. Если вы запускаете страницу загрузки в новом окне при нажатии клиента, то она оставляет исходную страницу открытой для печати, в то время как загрузка файла будет происходить как независимый процесс. Если вы попытаетесь сделать это последовательно, то можете столкнуться с проблемами надежности, так как в конечном итоге попытаетесь распечатать страницу, которая больше не существует, потому что ваш щелчок вызвал обратную передачу для загрузки файла.
saimanisha
хорошо, тогда как мне написать код для запуска загрузки файла после печати текущей страницы ..
F-ES Sitecore
Это ваша проблема, вы не знаете, была ли страница напечатана. Если вы настаиваете на том, чтобы использовать это как требование, вы никогда не добьетесь успеха, все, что вы можете сделать, это window.print (), и после этого все зависит от пользователя.
Если вы хотите спровоцировать загрузку перед командой window. print, то на странице есть такая форма, как
< form id=" dlForm " action=" yourdownloadpage.aspx "target= "_blank">
// любые данные, которые вы хотите отправить в форму, будут отправлены в скрытые поля здесь
< input type=hidden name=od value= "123" />
в <тип входного=передать значение=скачать стиль="дисплей:ни один;"/&ГТ;
< / форма>
Затем вы отправляете эту форму в своем JS-коде
$("#dlForm"). отправить();
Альтернативный Хак состоит в том, чтобы иметь iframe на странице с шириной и высотой 1 и установить значение display:none, и вы устанавливаете src iframe на свою страницу загрузки.