我OrderItem
在GWT项目中有一个自定义小部件().这个小部件有一个TextBox
.我将它的id设置为"Navid".但是,如果我OrderItem
在面板中创建多个实例呢?然后将重复id.这会使html无效.
如何为TextBox分配唯一ID?
好吧,通常情况下,GWT小部件会生成自己的ID,这些ID会自动唯一,您通常不会担心ID是什么.当你说你正在设置TextBox的ID时,我假设你正在调用类似的东西myTextBox.getElement().setId("Navid")
.
根据您的使用情况,我可以考虑两种简单的方法.HTMLPanel类上有一个静态createUniqueId()方法,您可以单独使用它,也可以轻松创建唯一ID.喜欢myTextBox.getElemement().setId("Navid-" + HTMLPanel.createUniqueId())
.唯一的问题是生成的ID不是确定性的.
另一种常见方法是基于父窗口小部件的ID生成ID.myTextBox.getElement().setId("Navid-" + myTextBox.getParent().getElement().getId())
.
但是,我将在这里猜一下,并假设你想要为这个小部件分配你自己的自定义ID的原因是你可以从你的GWT代码之外,从Javascript中解决它,例如,来自JQuery.在这种情况下,我建议您不要为它分配一个ID,它必须是唯一有用的,而是指定一个html类名称给widget的元素.然后,您将针对您的OrderItem的id或类的id或类来解决窗口小部件的元素.您可以像在示例中一样向元素添加html类名myTextBox.getElement().addStyleName("navid")
因此,假设您将orderItemWidget的html类分配给OrderItem小部件的根HTML元素,并将一个html类navid分配给TextBox,您可以使用选择器从JQuery引用文本框 ".orderItemWidget .navid"
归档时间: |
|
查看次数: |
2424 次 |
最近记录: |