ASP.NET 2.0: вызов функции JavaScript из onChange с AutoPostBack = true - PullRequest
0 голосов
/ 11 марта 2009

У меня есть ASP.NET DDL, который выглядит следующим образом при просмотре источника:

<select name="testControl" onchange="DoCustomStuff();setTimeout('__doPostBack(\'testControl\',\'\')', 0)" id="testControl">

На странице .cs это выглядит так:

<asp:DropDownList ID="testControl" runat="server" onchange="DoCustomStuff()" OnSelectedIndexChanged="testControl_Changed" AutoPostBack="true" />

Может кто-нибудь увидеть проблему с использованием onchange и AutoPostBack = "true" в таком DDL? Я спрашиваю, потому что у нас есть некоторые пользователи, для которых DoCustomStuff (), кажется, не вызывается правильно, и мне интересно, будет ли возможно выполнение __doPostBack () до того, как DoCustomStuff () завершит свою работу.

1 Ответ

0 голосов
/ 11 марта 2009

Попробуйте добавить ссылку обратной передачи вручную, например:

Page.ClientScript.RegisterClientScriptBlock(
  typeof(_Default), 
  "PageScripts", 
  string.Format("function DoCustomStuff() { /* Your Code Here */ {0} }", Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
);

testControl.Attributes["onchange"] =  "DoCustomStuff();";

это дает вам ссылку на обратную сторону клиента:

Page.ClientScript.GetPostBackEventReference(testControl, string.Empty))
...