select标签内设置全选

我看了一下官方那边有多选的api没有全选的,这个搞起来就麻烦一点了,当时拿到这个任务的时候,我还取看了一下下拉菜单Dropdrown,在里面套多选,但是这样做要改的地方也贼鸡多,想想还是烦了,在select自己加一个全选的选项,下面是第一次尝试,但是有问题,循环不出来全部内容,只显示第一条数据:

<template>
  <a-select v-model="selectedOptions" mode="multiple" style="width: 300px">
    <a-select-option key="all" value="all">全选</a-select-option>
    <a-select-option v-for="option in options" :key="option.value" :value="option.value">{{ option.label }}</a-select-option>
  </a-select>
</template>

这样做是错的,先给你们列举出来

然后我重新尝试了别的方法,最后还是决定,直接操作数据解决

Options.value.unshift({ value: '全部', label: '全部' });

这是在数组第一个数据上插入数据‘全部’

同时去监听内容,出现全部时,绑定数据只有全部。

watch(
  () => selected.value,
  (newSelected) => {
    if (newSelected.includes('全国')) {
      selected.value = ['全国'];
    } else {
      return;
    }
  }
);

做完这,就剩下回传的时间处理数据了,这边是这么搞的

 let selectedName = '';
  if (selectedArea.value.includes('全国')) {
    let areaName = JSON.parse(JSON.stringify(Options.value));
    areaName.splice(0, 1);
    selectedName = areaName.map((item) => item.value).join(',');
  } else if (selectedArea.value.length > 0) {
    selectedName = selectedArea.value.join(',');
  } else {
    return;
  }

到这就完活了,有什么问题欢迎来讨论

删除之类操作需要全选功能,方便选择 public class MainActivity extends Activity { private ListView lv; private MyAdapter mAdapter; private ArrayList list; private Button bt_selectall; // private Button bt_cancel; // private Button bt_deselectall; private int checkNum; // 记录选中的条目数量 private TextView tv_show;// 用于显示选中的条目数量 /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* 实例化各个控件 */ lv = (ListView) findViewById(R.id.lv); bt_selectall = (Button) findViewById(R.id.bt_selectall); // bt_cancel = (Button) findViewById(R.id.bt_cancelselectall); // bt_deselectall = (Button) findViewById(R.id.bt_deselectall); tv_show = (TextView) findViewById(R.id.tv); list = new ArrayList(); // 为Adapter准备数据 initDate(); // 实例化自定义的MyAdapter mAdapter = new MyAdapter(list, this); // 绑定Adapter lv.setAdapter(mAdapter); // 全选按钮的回调接口 bt_selectall.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // 遍历list的长度,将MyAdapter中的map值全部设为true for (int i = 0; i < list.size(); i++) { MyAdapter.getIsSelected().put(i, true); } // 数量设为list的长度 checkNum = list.size(); // 刷新listview和TextView的显示 dataChanged(); } }); // 反选按钮的回调接口 // bt_cancel.setOnClickListener(new OnClickListener() { // @Override // public void onClick(View v) { // // 遍历list的长度,将已选的设为未选,未选的设为已选 // for (int i = 0; i < list.siz
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值