-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi all
Is any example on following?
he
I am trying to write a code, Listbox will fill with table data using annotation binding. In a listbox a column having a boolean type. user will check/uncheck serially or randomly. After finishing the user work user will click the button and the check /uncheck data will commited to table.
Listbox has model, it some kind of collection of elements which are shown on listbox.
here you assigning this collection to listbox. usrmenulst - listbox, usrmenulist - it's model. Names are very similar, so it's a little bit confusing. I suggest it's better to rename model variable.
<listbox id="usrmenulst" width="100%" model="@{usrmenulist}" >
<listitem id="liusrmenu" self="@{each='usrmenu'}" value="@{usrmenu}"> <listcell> <!-- no need for id attribute here --> <checkbox checked="@{usrmenu.assigned}"/> <!-- no need for id attribute here --> </listcell> <listcell label="@{usrmenu.menu_name}"/> <listcell label="@{usrmenu.menu_item_name}"/> </listitem>
You can also read on this site lot of good tutorials and smalltalks about listmodel's and databinding.
Hope this helps.
Thank you very much Arsen
it works after replacing following statement.
Thanks in advance
Strange code
Boolean lm = Boolean.valueOf(usrmenulst.getModel().getElementAt(i).toString());
Boolean lm = ((UserMenu)usrmenulst.getModel().getElementAt(i)).getAssigned()
Hi Arsen,
I tried please look at my zul file
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" arg0="sys_logins"?>
<zk>
<window id="sys_logins" title="User Master" closable="true" border="normal" xmlns:a="http://www.zkoss.org/2005/zk/annotation" height="100%" contentStyle="overflow:auto">
<style src="/css/single_de.css"/>
<zscript>
<![CDATA[
import com.drishti.Admin.MstUserRegistration;
com.drishti.Admin.MstUserRegistration user = new com.drishti.Admin.MstUserRegistration();
List users = user.UserList();
com.drishti.Admin.UserMenuAssignController usrmenu = new com.drishti.Admin.UserMenuAssignController();
List usrmenulist = usrmenu.UsermenuList(user.getUser_id());
]]>
</zscript>
<hbox>
<vbox width="20%">
<listbox id="lbuserlist" rows="10" model="@{users}" selectedItem="@{user}" onSelect="clickProc(self.getSelectedItem())" >
<listhead>
<listheader label="User" sort="auto"/>
</listhead>
<listitem self="@{each='user'}" value="@{user}">
<listcell label="@{user.user_id}"/>
</listitem>
</listbox>
</vbox>
<grid>
<rows>
<row>
<vbox width="79%">
<hbox align="start" width="30%">
<button id="updateallRec" label="Update" onClick="Update_all()" />
</hbox>
</vbox>
</row>
<row>
<vbox width="79%">
<listbox id="usrmenulst" width="100%" model="@{usrmenulist}" >
<listhead>
<listheader label="Assigned" />
<listheader label="Menu"/>
<listheader label="Menu Item" />
</listhead>
<listitem id="liusrmenu" self="@{each='usrmenu'}" value="@{usrmenu}">
<listcell id="chkbox">
<!-- <checkbox id="chkb_assigned" checked="@{usrmenu.assigned}"
onCheck="usrmenu.setAssigned(self.checked);if(self.checked){self.parent.setLabel(String.valueOf('Y'));} else {self.parent.setLabel(String.valueOf('N'));};"/>
-->
<checkbox id="chkb_assigned" checked="@{usrmenu.assigned}"/>
</listcell>
<listcell label="@{usrmenu.menu_name}"/>
<listcell label="@{usrmenu.menu_item_name}"/>
</listitem>
</listbox>
</vbox>
</row>
</rows>
</grid>
</hbox>
<zscript>
<![CDATA[
import java.util.*;
import com.drishti.Admin.MstUserRegistrationTable;
import org.zkoss.zul.*;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.event.*;
import org.zkoss.zkplus.databind.*;
import org.zkoss.zul.Listbox;
import org.zkoss.zul.Listitem;
public void Update_all()
{
for (int i = 0;i < usrmenulst.getItemCount(); i++) {
Boolean lm = Boolean.valueOf(usrmenulst.getModel().getElementAt(i).toString());
// Listitem li = usrmenulst.getItems().get(i); // get list items from usrmenulst ListBox
alert(lm);
// alert(li.getChildren().get(0).getLabel()); Will Get Listcell value
}
alert("Record Updated ....");
}
public void clickProc(Listitem selItem)
{
// alert(user.getUser_id());
// alert(usrmenu.UsermenuList(user.getUser_id()).size());
model = ListModelList.instance(usrmenu.UsermenuList(user.getUser_id()));
usrmenulst.setModel(model);
}
]]>
</zscript>
</window>
</zk>
Every time I get the "false" value of lm at Update_all()
Thanks Arsen
I am newbie can you tell me how to retrieve modified objects from listbox's model.
Thanks in an advance
Something like this
<listbox model="@{model}"> <listhead> <listheader label="Boolean column"/> <listheader label="Other column"/> </listheader> <listitem self="@{each=v}"> <listcell><checkbox checked="@{v.<your boolean property>}"/></listcell> <listcell label="@{v.someOtherProperty}"/> </listitem> </listbox>
And inside onClick event of button you retrieve modified objects from listbox's model and put them into db.
Asked: 2010-06-16 02:27:06 +0800
Seen: 674 times
Last updated: Jun 19 '10