2010-08-20 2 views
1

Возможно ли подобное?Можете ли вы переключиться с Async PostBack на Full PostBack в панели обновления?

Dim iCounter as Integer 
Dim iQuantity as Integer = 10 

Protected Sub btnFoo_Click Handles btnFoo Yadda 

    For i as Integer = iCounter to iQuantity - 1 
     //do something with AsyncPostBackTrigger until iCounter = iQuantity - 1 
     //then trigger a full postback 
    Next 

End Sub 

Я новичок в концепции и чувствую, что должно быть что-то очень простое, что мне не хватает.

ответ

0

Не останавливаясь на том, почему, в конце концов, я сохранил счетчик в переменной сеанса и вышел из подпрограммы из цикла for, если счетчик не был равен количеству.

Затем все, что было в конце цикла for, которое мне нужно было обновить (Ярлыки, DropDownBoxes), я установил в свои собственные панели обновлений с установленным UpdateMode всегда.

Чтобы изменить мой псевдокода выше:

Dim iCounter as Integer = Session("counter") 
Dim iQuantity as Integer = 10 

Protected Sub btnFoo_Click Handles btnFoo Yadda 

    For i as Integer = iCounter to iQuantity - 1 
     //do something with AsyncPostBackTrigger until iCounter = iQuantity - 1 
     //then trigger a full postback 

     If iCounter <> iQuantity Then 
      Exit Sub 
     End If 
     Session("counter") = iCounter + 1 
    Next 

    //Everything else I needed to do with page controls wrapped 
    //in their own update panels 

End Sub 

Может быть, не «лучшей практики», но он работал на то, что мне было нужно.

Смежные вопросы