Вам необходимо использовать ScriptManager.RegisterStartupScript
при регистрации скрипта в UpdatePanel
вместо ClientScript.RegisterStartupScript
. Этот метод перегружен, и ожидается, что элемент управления, регистрирующий блок клиентского скрипта в качестве первого параметра.
public class MyUpdateControl : Control
{
public MyUpdateControl()
{
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
//..
string doUpdateScript = String.Format(
"DoUpdate('{0}')", someValue);
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", script, true);
//..
}
}
В приведенном выше примере используется пользовательский элемент управления, я понимаю, что вы используете пользовательский элемент управления. Две реализации очень похожи, но я включил пример этого ниже для полноты.
public partial class MyUpdateControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
//..
string doUpdateScript = String.Format(
"DoUpdate('{0}')", someValue);
ScriptManager.RegisterStartupScript(this, GetType(),
"ServerControlScript", script, true);
//..
}
}