ASP.Net zapewnia sposób, aby budować połączenia do wykonywania PostBack od javascript.
ClientScriptManager.GetPostBackEventReference Metoda zbuduje kod trzeba użyć javascript, aby wykonać PostBack od konkretnej kontroli http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.getpostbackeventreference.aspx
Poniżej jest przykład (w Vb.NET). W kodzie źródłowym tworzę własną funkcję javascript. Kod ASP.Net wstawi kod javascript do mojej funkcji, aby wykonać PostBack dla kontrolki "MyButton". Kiedy strona zostanie zbudowana, ta funkcja javascript będzie dostępna.Kiedy kod javascript nawiąże połączenie z tą funkcją javascript, wykona PostBack, który będzie naśladować działanie, które ma miejsce po kliknięciu przycisku "MyButton".
Dim csm As ClientScriptManager = Page.ClientScript
Dim sb As New StringBuilder
sb.AppendLine("function handleDoPostBack() {")
sb.AppendLine(csm.GetPostBackEventReference(MyButton, ""))
sb.AppendLine("}")
csm.RegisterClientScriptBlock(Me.Page.GetType, "js_code__create_functions", sb.ToString, True)
Mam nadzieję, że tego właśnie szukasz.
UPDATE
Oto przykład, w jaki sposób można wywołać funkcję JavaScript, który został stworzony dla Ciebie po stronie serwera.
<input type="button" value="Click Me" onclick="handleDoPostBack();" />
Zrobiłem zwykły przycisk HTML (zamiast przy użyciu przycisku ASP.NET), bo nie chcą się pojęcie odświeżenie strony przycisku mylić z nim. Jest to po prostu przycisk HTML, który nie robi nic poza tym, co programujesz. Ponieważ dodałem wywołanie funkcji javascript do onclick, po naciśnięciu przycisku wykona on PostBack. Kiedy pojawi się PostBack, działa tak, jakby kliknął przycisk "MyButton"; to byłby przycisk ASP.Net, który masz gdzieś na stronie. Ponieważ ten przycisk jest przyciskiem ASP.Net, już wcześniej wykonałby PostBack, dlatego myślę, że istnieje pewne zamieszanie związane z programowaniem programu PostBack.
Można również wywołać funkcję javascript bezpośrednio w kodzie jako takie ...
<script>
handleDoPostBack();
</script>
to nastąpi tak szybko, jak kod napotyka go. Lub, jeśli umieścisz go w zdarzeniu onload, zostanie ono wywołane po zakończeniu ładowania strony. Ale, jak wspomniałem w swoim komentarzu, musisz być ostrożny, ponieważ możesz skończyć z pętlą inifinite.
Po przeczytaniu niektórych komentarzy w innych odpowiedziach, problem, który próbujesz rozwiązać, wydaje się mieć związek z panelami AJAX, z których korzystasz. Nie jestem z nich znany, więc nie jestem pewien, dlaczego to nie działa, i nie wiem, czy uruchomienie programu PostBack ma rozwiązać problem.
Jednakże, jeśli trzeba programowo wyzwolić PostBack, jest to kod, którego można użyć. Używam go w przypadkach, w których nie chcę, aby przycisk był na stronie, ale chcę, aby miała miejsce akcja. Kiedy na mojej stronie dzieje się coś jeszcze, uruchamiam kod javascript, który działa tak, jakby kliknięto przycisk - i mogę obsłużyć ten przycisk po stronie serwera. Na mojej stronie ASP.Net uwzględniam przycisk, ale potem używam CSS, aby ukryć użytkownika przed wyświetleniem przycisku. Tak więc użytkownik nie widzi przycisku, ale mój kod javascript może wywoływać moją funkcję javacript, która będzie naśladować kliknięcie tego przycisku.
po prostu nie rozumiem, dlaczego używasz __doPostBack w JavaScript, jeśli przycisk mimo to powoduje zwrot? – Alexan
Jaki jest powód napisania własnego skryptu odświeżania dla kontrolki przycisku (który jest publikowany tak jak Alex stwierdził)? – Win
Czy chcesz wykonać PostBack dla przycisku OnClick? To jest uruchamiane automatycznie. Nie musisz dodawać do niego dodatkowego kodu. –