Почему моя функция Javascript работает, когда вызывается с помощью `onclick`, а не когда вызывается программно?

0

У меня есть функция Javascript, которая расширяет все панели управления ASP Ajax Accordion. Функция:

function expandEditAll() {
  var behavior = $get("<%= accEditIncident.ClientID %>").AccordionBehavior;
  for (var i = 0; i < behavior._panes.length; i++) {
    behavior.get_Pane(i).content.style.display = 'inline';
    behavior.get_Pane(i).content.height = behavior.get_Pane(i).content.scrollHeight;
    behavior.get_Pane(i).content.style.height = behavior.get_Pane(i).content.scrollHeight + 'px';
  }
}

Когда я вызываю эту функцию с помощью:

<a href="#" onclick="expandEditAll();">Expand All</a>

он работает отлично.

Но когда я называю это кодом С# следующим образом:

StringBuilder expand = new StringBuilder();
expand.AppendLine("<script type='text/javascript'>");
expand.AppendFormat("  expandEditAll();" + System.Environment.NewLine);
expand.AppendLine("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "expandEdit", expand.ToString(), false);

это не сработает, а в инструментах разработчика Chrome я получаю сообщение об ошибке Uncaught TypeError: Cannot read property '_panes' of undefined. Почему behavior не определено здесь, когда я выполняю тот же самый вызов функции?

Я также пробовал:

ClientScript.RegisterClientScriptBlock(this.GetType(), "expandEdit", expand.ToString(), false);

но получил сообщение об ошибке Uncaught ReferenceError: $get is not defined.

1 ответ

0

Попробуйте это, я смог выполнить функцию javascript.

 StringBuilder script = new StringBuilder();

 script.Append(@"<script language='javascript'>");
 script.Append(@"expandEditAll()");
 script.Append(@"</script>");

        Page.ClientScript.RegisterStartupScript(this.GetType(), "expandEdit",  script.ToString());
  • 0
    Проблема не в том, что функция не выполняется; это то, что я получаю undefined ошибку в var behavior при выполнении функции. Во всяком случае, я попробовал ваше предложение, и оно не имело никакого значения.
  • 0
    Да, когда я больше разбирался в твоих вопросах - это немного сложнее, чем это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню