2012-03-25 71 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