Чистый шаблон JQuery - PullRequest
       30

Чистый шаблон JQuery

0 голосов
/ 23 мая 2010

Я не могу понять, что не так. Он работает, когда я пытался обновить только темы, но не работает, когда пытался обновить темы и ссылки на страницы. то есть. Обновление таблицы тем и исчезновение «ссылок на страницы», я думал, что чистый не может достичь - прочитайте второй узел шаблона.

Между прочим, я проверил их код, в первом окне сообщения отображаются все узлы - включая узел 'pagelinks', а во втором - в функции отображаются только строки темы. Это похоже на ошибку. Кто-нибудь знает, как я могу решить это?

пс. Я использую последнюю версию pure.

Спасибо.

Тестовый код - строка pure.js: 189

function dataselectfn(sel) {
    // ...
    m = sel.split('.');
    alert(m.toSource());
    return function (ctxt) {
        var data = ctxt.context;
        if (!data) {
            return '';
        }

        alert('in function: ' + m.toSource());
        // ...

Json:

{"topics":[{"name":"foo"}],"pagelinks":[{"Page":1},{"Page":2}]}

HTML - перед чистым рендерингом:

<table>
    <tbody>
        <tr>
            <td class="pagelinks">
                <a page="1" href="/Topics/IndexForAreas?page=1" class="p Page@page">1</a>
            </td>

            <td class="pagelinks">
                <a page="2" href="/Topics/IndexForAreas?page=2" class="p Page@page">2</a>
            </td>
        </tr>
    </tbody>
</table>

HTML - после чистого рендеринга:

<table>
    <tbody>
        <tr>
        </tr>
    </tbody>
</table>

Контроллер:

    [Transaction]
    public ActionResult IndexForAreas(int? page)
    {
        TopicService topicService = new TopicService();
        PagedList<Topic> topics = topicService.GetPaged(page);
        if (Request.IsAjaxRequest())
        {
            return Json(new {
                topics = topics.Select(t => new {
                    name = t.Name,
                }),
                pagelinks = PagingHelper.AsPager(topics, 1)
            });
        }
        return View(topics);
    }

ASP.NET - Просмотр:

<div class="topiccontainer">
    <table>
        <%
            foreach (Topic topic in ViewData.Model)
            { %>
        <tr class="topics">
            <td>
                <%= Html.ActionLink<ForumPostsController>(ec => ec.Index(topic.Name, null), topic.Name, new { @class="name viewlink@href" })%>
            </td>
            //bla bla...
        </tr>
        <%} %>
    </table>
    <table>
        <tr>
            <% Html.Pager(Model, 1, p =>
           { %>
            <td  class="pagelinks">
                <%= Html.ActionLink<TopicsController>(c => c.IndexForAreas(p.Page), p.Page.ToString(), new { page = p.Page, @class = "Page@page" })%>
            </td>
            <% }); %>
        </tr>
    </table>
</div>

Мастер-страница:

    <% Html.RenderAction("IndexForAreas", "Topics", new { area = "" }); %>
    <script type="text/javascript">
        $.post("<%= Html.BuildUrlFromExpressionForAreas<TopicsController>(c => c.IndexForAreas(null)) %>", { page: page },
                function (data) {
                    $(".topiccontainer").autoRender(data);
                },
                "json"
        );
    </script>

1 Ответ

0 голосов
/ 15 июля 2010

В следующий раз, когда у вас возникнет вопрос или проблема с PURE, вы можете отправить его по адресу: http://groups.google.com/group/Pure-Unobtrusive-Rendering-Engine

В общем, вы получите быстрый ответ там.

...