Выполнение VB WebMethod из JavaScript - PullRequest
2 голосов
/ 31 мая 2011

Я пытаюсь удалить кнопку VB.NET на моей странице aspx. Попытка использовать javascript и ajax для выполнения того же кода, который был у моего vb.

Я включил диспетчер сценариев, установил для EnablePageMethods значение true, добавил статическую подпрограмму и сослался на нее в моей функции javascript (кстати, это кажется большой работой только для выполнения существующей подпрограммы). Javascript вызывает мой код, и он почти работает.

Проблема в том, что теперь я получаю исключение NullReferenceException, когда SimulatePrintBatchClick пытается что-либо сделать с элементами управления.

Ошибка: «Ссылка на объект не установлена ​​для экземпляра объекта», строка «pnlVars.Controls.Clear»

Вот код из UW.aspx:

<WebMethod()> _
Public Shared Sub PrintBatchFromJSWM()
    Dim UWI As New UW

    UWI.SimulatePrintBatchClick()
End Sub


Sub SimulatePrintBatchClick()
    Dim Client As New LetterWriterClient

    'Run ExStream and get the PDF File
    Globals.PDF_Data = Nothing
    Globals.PDF_Data = Client.ProcessDatFile(Session("SessionID").ToString)

    'Reload the form -- turn off all controls, initialize variables and make the PDF iFrame visible
    pnlVars.Controls.Clear() 'Bombs out on THIS line of code
    pnlPDF.Visible = True
    Me.SendToBach.Visible = False
    Session.Contents("LetterVariables") = Nothing
    Session.Contents("PolicyInformation") = Nothing
    Session.Contents("Submitted") = True
    Response.Redirect("UW.aspx")
End Sub

Забавно, когда я запускаю приведенный выше код в PrintBatch_Click, все работает просто отлично. Я действительно не понимаю, почему это взрывается как подпрограмма.

Возможно, это не тот способ, но я не могу найти другой способ. Первоначально этот код обрабатывался кнопкой ASP / VB, но спецификации требовали его удаления.

В любом случае, я могу получить приведенный выше код для выполнения своей работы?

Спасибо, Джейсон

1 Ответ

2 голосов
/ 31 мая 2011

Вы не можете использовать какие-либо серверные элементы управления в WebMethod или AjaxMethod, так как они не являются частью жизненного цикла страницы, доступ к этим элементам управления в Javascript.

...