2012-03-25 73 views
0

我正在使用wicket。我使用了一个复选框,用于通过Listview生成的表中的每一行。我想通过使用复选框选择删除特定的行。如何删除使用复选框通过listview生成的多行表格

可以使用显示表格数据的Listview生成此表格。请告诉我至少我如何通过选择多个复选框来获得行ID。请告诉我我该怎么做?

package com.cerebrum.pages; 

import java.util.ArrayList; 
import java.util.List; 

import org.apache.wicket.ajax.AjaxRequestTarget; 
import org.apache.wicket.ajax.markup.html.form.AjaxButton; 
import org.apache.wicket.markup.html.form.CheckBox; 
import org.apache.wicket.markup.html.form.CheckGroup; 
import org.apache.wicket.markup.html.form.CheckGroupSelector; 
import org.apache.wicket.markup.html.form.Form; 
import org.apache.wicket.markup.html.form.TextField; 
import org.apache.wicket.markup.html.list.ListItem; 
import org.apache.wicket.markup.html.list.ListView; 
import org.apache.wicket.model.CompoundPropertyModel; 
import org.apache.wicket.model.PropertyModel; 

import com.cerebrum.common.Home; 
import com.cerebrum.hibernate.Users; 
import com.cerebrum.hibernate.UsersHome; 
import com.cerebrum.pojo.AdminViewUserModel; 

public class AdminViewUser extends Home 
{ 
    UsersHome usersHome=new UsersHome(); 
    List<AdminViewUserModel> listCal = new ArrayList<AdminViewUserModel>(); 
    AdminViewUserModel adminViewUserModel=new AdminViewUserModel(); 

    public AdminViewUser() 
    { 
     super(); 
     add(new AdminViewUserForm()); 
    } 

    public class AdminViewUserForm extends Form 
    { 
     public AdminViewUserForm() 
     { 
      super("AdminViewUserForm"); 
      setModel(new CompoundPropertyModel(adminViewUserModel)); 

      List<Users> lstUsers=usersHome.getUserInfo(); 
      for(Users users:lstUsers) 
      { 
       listCal.add(new AdminViewUserModel(users.getFirstName(), 
        users.getMiddleName(),users.getLastName(),users.getDateOfBirth(), 
        users.getEmailId(),users.getMobileNo(),users.getUserName(), 
        users.getPassword())); 
      } 

      ListView listViewCal = new ListView("listViewCal", listCal) 
      { 
       protected void populateItem(ListItem item) 
       { 
        AdminViewUserModel model=(AdminViewUserModel)item.getDefaultModelObject(); 
        CheckBox chkBoxSelect=new CheckBox("chkBoxSelect",new PropertyModel(model, "chkBoxSelect")); 
        item.add(chkBoxSelect); 

        TextField txtFname=new TextField("txtFname",new PropertyModel(model, "txtFname")); 
        item.add(txtFname); 

        TextField txtMname=new TextField("txtMname",new PropertyModel(model, "txtMname")); 
        item.add(txtMname); 
        TextField txtLname=new TextField("txtLname",new PropertyModel(model, "txtLname")); 
        item.add(txtLname); 
        TextField txtDOB=new TextField("txtDOB",new PropertyModel(model, "txtDOB")); 
        item.add(txtDOB); 
        TextField txtEmail=new TextField("txtEmail",new PropertyModel(model, "txtEmail")); 
        item.add(txtEmail); 
        TextField txtMobileNo=new TextField("txtMobileNo",new PropertyModel(model, "txtMobileNo")); 
        item.add(txtMobileNo); 

        TextField txtUserName=new TextField("txtUserName",new PropertyModel(model, "txtUserName")); 
        item.add(txtUserName); 
        TextField txtPassword=new TextField("txtPassword",new PropertyModel(model, "txtPassword")); 
        item.add(txtPassword); 
       } 
      }; 
      listViewCal.setOutputMarkupId(true); 
      add(listViewCal); 

      AjaxButton btnUpdate=new AjaxButton("btnUpdate") 
      { 
       @Override 
       protected void onSubmit(AjaxRequestTarget target, Form<?> arg1) 
       { 
       } 
      }; 
      btnUpdate.setOutputMarkupId(true); 
      add(btnUpdate); 

      AjaxButton btnDelete=new AjaxButton("btnDelete") 
      { 
       @Override 
       protected void onSubmit(AjaxRequestTarget target, Form<?> arg1) 
       { 
       } 
      }; 
      add(btnDelete); 
     } 
    } 
} 
+2

尝试修复http://stackoverflow.com/questions/9850232/data-comes-from-list-but-does-not-seen-onto-第一页。不要问很多相关的问题。另外,我建议你对Wicket模型做一些阅读。 – bert 2012-03-25 09:48:15

回答

1
+0

这就是我会这样做的方式。奇怪的是,检票口似乎没有这个共同requieremend的东西.. – bert 2012-03-25 14:53:00

+0

虽然它很容易实现。对于框架设计师来说,很难选择哪个需求是“普通”的,主要目标不应该是用太多的特殊功能来混淆你的框架。幸运的是,Wicket是高度(并且容易)适应性的。 – rotsch 2012-03-25 15:03:39

+0

那么'CheckGroup'就是为了满足这个共同需求而创建的。 – biziclop 2012-03-25 21:06:53