我正在尝试在通过ajax WebPage
交换内容的上实现面包屑导航Panel
。
最终看起来像这样: Home >> Page >> Panel
这是我的页面代码:
public MyPage() {
super();
contentContainer = new WebMarkupContainer("contentContainer");
contentContainer.setOutputMarkupId(true);
add(contentContainer);
contentContainer.add(content = createContentPanel());
breadCrumbContainer = new WebMarkupContainer("breadcrumbContainer");
breadCrumbContainer.setOutputMarkupId(true);
add(breadCrumbContainer);
final AjaxLink panelLink = new AjaxLink("panelLink") {
@Override
public void onClick(final AjaxRequestTarget target) {
replaceContentPanel(getOverviewPanel(), target);
}
@Override
public boolean isVisible() {
return !(content instanceof OverviewPanel);
}
};
breadCrumbContainer.add(panelLink);
panelLink.add(new Label("panelLabel", new Model<String>() {
@Override
public String getObject() {
//some dynamic content for example:
return contentPanel.getClass().getName();
}
}));
}
public void replaceContentPanel(final Component replacer, final AjaxRequestTarget target) {
content.replaceWith(replacer);
content = replacer;
if (target != null) {
target.add(contentContainer);
target.add(breadCrumbContainer);
}
}
主页和页面Label
都很简单。每当我更新的内容时Panel
,都需要更新Panel的一个WebPage
。我确定
target.add(breadCrumbContainer);
生产线会做到这一点。但是它是空的。标签不显示任何内容。
我希望在写问题时能找到答案-这可能很明显-但我仍然无法找到答案,所以我希望这里有人发现我的错误。
通过Ajax播放组件的可见性时setOutputMarkupPlaceholderTag(true)
,
除了之外
,还必须使用。请注意,这setOutputMarkupId(true)
setOutputMarkupPlaceholderTag(true)
将自动暗示setOutputMarkupId(true)
。
这样做的原因是,当通过Ajax刷新组件(将其添加到AjaxRequestTarget
)时,Wicket会在Ajax响应中返回刷新的标记,因此将通过JS-
DOM API通过Ajax回调方法将其替换。因此,要使替换接收到的标记的JS函数正常工作,必须要引用要替换的DOM节点(HTML
id
属性)。这就是为什么setOutputMarkupId(true)
需要。
更改可见性时,如果组件不可见,则Wicket不会为该组件生成任何标记,这很不错,但是有一个缺点。如果一个不可见的组件在随后的ajax请求中变为可见,则其标记将有效地返回到Ajax响应中。但是,由于该组件不可见,所以它甚至不存在于原始标记中,并且不可能在回调时替换DOM节点。这就是setOutputMarkupPlaceholderTag(true)
方法开始起作用的地方,将
可能不可见的 组件包装在占位符标记(即<div>
)中,该标记将始终使用适当的HTML id
属性呈现。
问题内容: 我有一个活动,该活动的TabHost包含一组TabSpec,每个TabSpec都有一个listview,其中包含要由该选项卡显示的项目。创建每个TabSpec时,我设置一个图标以显示在选项卡标题中。 TabSpec是通过以下方法创建的,该方法循环创建适当数量的选项卡: 有几个实例,我希望能够更改程序执行过程中每个选项卡中显示的图标。目前,我正在删除所有选项卡,并再次调用上述代码以重新创
不幸的是,我已经成为不断更新标签问题的牺牲品。在寻找解决方案时,我找到了一个有很多赞成票的答案,建议将我的标签绑定到StringProperty,然后每当更改StringProperty时,标签的文本就会随之更改。但是,我无法让它正常工作。 我知道这是某种线程问题。有没有办法使用DataBding解决方案等解决问题,或者线程是唯一的选择?如果线程是唯一的选择,你能给我指出正确的方向吗?我也没有找到
> System.out正确显示标签上的id; 第二个控制器与嵌入在第一个控制器中的FXML文件绑定。如代码所示,第二个FXML文件/控制器是动态加载的:。 当从第二个控制器中的initialize方法设置id时,id会按预期显示在标签中: public void initialize(){this.setid(“12”);} 编辑: 此窗格声明为属性 第二个:
vote|投票标签: 标签名称:vote 标记简介: 功能说明:用于获取一组投票表单 适用范围:全局使用 基本语法: {dede:vote id='' lineheight='22' tablewidth='100%' titlebgcolor='#EDEDE2' titlebackground='' tablebgcolor='#FFFFFF'/} 参数说明: id='' 数字,当前投票ID l
问题内容: 我需要运行以下查询: 但是在执行时会出现错误: 有什么办法吗? 问题答案: 在我看来,进行一些小的更改即可解决此问题? 更改为。因此,您对想要的价值
谁能帮我解决这个问题,或者给我指出正确的方向? 我正在使用Python 3.9.7 我的目标是创建一个python程序,使用Tkinter显示两个变量之间的时间差,我希望这个变量在倒计时时每秒更新一次。 我已经创建了TK窗口,其中显示了标题文本和timedif标签,但是当我的程序运行时,timedif标签不会更新。Timedif标签仅显示程序执行时的timedelta。 我定义了一个函数count