Как вставить элементы XSLT с атрибутами внутри javascript внутри атрибута html? - PullRequest
0 голосов
/ 29 октября 2010

Сводка вопроса: Какие изменения необходимо внести, чтобы сделать следующий документ xslt действительным.

Ниже приведена упрощенная версия документа темы, которую я пытаюсь изменить для элемента управления Gizmox WebGUI DataGrid.Проблема, с которой я столкнулся, - это ужасающий атрибут события onclick на элементе кнопки.Я пробовал код и таким образом, и с &quot; вместо " для кавычек атрибута.Ни в том, ни в другом случае документ не проходит проверку.Я мог бы выполнить часть работы в методе javascript, и, вероятно, сделаю это до того, как я это сделаю, но мне все равно нужно будет передать значение <xsl:value-of select="@Attr.TotalPages"/> в качестве параметра и в этом случае.

<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:WC="wgcontrols">
    <xsl:template name="tplListDrawPaging">
    <table border="0" cellpadding="0" cellspacing="0" class="List-PagingPanel" dir="{$dir}" align="center">
      <tr>
          <td width="150px" align="right" class="Common-FontData" dir="ltr">
              <span>Go to page:</span>
              <input type="text" id="{@Id}-goToPageTextBox" name="{@Id}-goToPageTextBox" style="width:35px;" />
              <button type="button" onclick="var goToValue = getElementById('{@Id}-goToPageTextBox').value;
                                        if(goToValue &lt;= 0){goToValue = 1;}
                                        else if(goToValue &gt; <xsl:value-of select="@Attr.TotalPages"/>){goToValue = <xsl:value-of select="@Attr.TotalPages"/>;})
                                        List_NavigateTo('{@Id}',goToValue);">Go</button>
        </td>
      </tr>
    </table>
  </xsl:template>
</xsl:stylesheet>

1 Ответ

3 голосов
/ 29 октября 2010

Вы должны убрать фигурные скобки внутри выражения, удвоив их:

<button type="button" onclick="var goToValue = document.getElementById('{@Id}-goToPageTextBox').value; if (goToValue &lt;= 0) {{ goToValue = 1; }} else if (goToValue &gt; {@Attr.TotalPages}) {{ goToValue = {@Attr.TotalPages}; }} List_NavigateTo('{@Id}', goToValue);">Go</button>

Я бы определенно поместил этот код в свою собственную функцию и вызвал бы его из обработчика onclick.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...