Seaside:列表在更新时丢失其内容

发布于 2024-10-17 08:10:59 字数 587 浏览 4 评论 0原文

这个其实很简单。我有一个

renderContentOn: html
|value myId|
    html form with: [
        html select list: #('one' 'two' 'tree' 'four' 'five');
            id: (myId := html nextId);
            callback: [ :v | value := myId ];
            onChange: (
                html prototype updater
                    triggerFormElement: myId;
                    callback: [:h | value "do something with the value here"];
                    return: false
                ).
    ]

This one is really simple. I've got a <select> and I want to update some internal state based on the selection. No need to redisplay anything. The problem is that after the selection and the AJAX request have been made, the list loses its contents.

renderContentOn: html
|value myId|
    html form with: [
        html select list: #('one' 'two' 'tree' 'four' 'five');
            id: (myId := html nextId);
            callback: [ :v | value := myId ];
            onChange: (
                html prototype updater
                    triggerFormElement: myId;
                    callback: [:h | value "do something with the value here"];
                    return: false
                ).
    ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

孤云独去闲 2024-10-24 08:10:59

#updater 需要要更新的元素的 DOM ID。如果您未能提供 ID,则默认为 this,即触发事件的 DOM 元素。因此,您最终会得到一个空列表。如果您不需要更新某些内容,则应使用 #request 而不是 #updater。如果您想更新某些内容,则需要使用 #id: 提供有效的 ID。

阅读 Seaside Book 的AJAX:与服务器对话部分,它非常详细地解释了 AJAX。

The #updater needs an DOM ID of the element to update. If you fail to provide an ID, it default to this, the DOM element triggering the event. Thus, you end up with an empty list. If you do not need to update something you should use #request instead of #updater. If you want to update something you need to provide a valid ID using #id:.

Read the section AJAX: Talking back to the Server of the Seaside Book, it explains AJAX in great detail.

怎樣才叫好 2024-10-24 08:10:59

因为更新程序用回调生成的内容替换了定义它的元素的 html,并且您的回调不会生成任何 html,所以我认为该列表是空的。

Because the updater replaces the html of the element it was defined on with the content generated by the callback and your callback does not generate any html, the list is empty, I think.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文