Smobiler上海石磨_.NET移动开发平台

标题: Poplist设置SetSelections后无法取消选择 [打印本页]

作者: feitianchong    时间: 2021-7-27 17:43
标题: Poplist设置SetSelections后无法取消选择
  1. string[] strMenu = this.lb_menus.Text.Split(',');

  2.                 PopListGroup grpSel = new PopListGroup();
  3.                 for (int i = 0; i < dt_group.Rows.Count; i++)
  4.                 {
  5.                     PopListGroup grpContainer = new PopListGroup();
  6.                     grpContainer.TitleVisible = true;
  7.                     grpContainer.Title = dt_group.Rows[i]["groupname"].ToString();
  8.                     DataRow[] dri = dt_menus.Select(string.Format("groupname='{0}'", dt_group.Rows[i]["groupname"].ToString()));
  9.                     for (int j = 0; j < dri.Length; j++)
  10.                     {
  11.                         PopListItem ivi = new PopListItem();
  12.                         ivi.Value = dri[j]["id"].ToString();
  13.                         ivi.Text = dri[j]["itemText"].ToString();
  14.                         grpContainer.Items.Add(ivi);

  15.                         if (strMenu.Contains(ivi.Value))
  16.                         {
  17.                             grpSel.Items.Add(ivi);
  18.                         }
  19.                     }
  20.                     popList1.Groups.Add(grpContainer);
  21.                 }
  22.                 //popList1.SetSelections((PopListItem[])grpSel.Items);

  23.                 foreach (PopListItem item in grpSel.Items)
  24.                 {
  25.                     popList1.SetSelections(item);
  26.                 }
  27.                 popList1.ShowDialog();
复制代码
通过这种方式设置默认选择后,再点已选的项无法取消选择



作者: Lula.Jin    时间: 2021-8-3 16:13
我们这边使用最新的deisgner 和客户端测试并没有出现你说的问题,请问使用的designer和客户端是否为最新版
作者: feitianchong    时间: 2021-8-5 14:11
Lula.Jin 发表于 2021-8-3 16:13
我们这边使用最新的deisgner 和客户端测试并没有出现你说的问题,请问使用的designer和客户端是否为最新版 ...

换了最新版本的designer,还是一样,客户端还没更新
作者: Lula.Jin    时间: 2021-8-5 16:46
我们用的是6.3.1的安卓客户端测试的,你可以下载试试看
作者: feitianchong    时间: 2021-8-7 15:26
Lula.Jin 发表于 2021-8-5 16:46
我们用的是6.3.1的安卓客户端测试的,你可以下载试试看

使用最新版本也不行。 代码里设置启动时默认的一些已选项无法取消选择,未选择默认选择部分是可以正常勾选与取消,你们测试时是不是在加载时默认选择?
作者: Lula.Jin    时间: 2021-8-9 09:45
是的,测试代码,
[attach]2304[/attach]
或者你提供一个可以运行并能出现错误的demo 给我们试试
作者: feitianchong    时间: 2021-8-10 14:09
本帖最后由 feitianchong 于 2021-8-10 14:11 编辑
Lula.Jin 发表于 2021-8-9 09:45
是的,测试代码,

或者你提供一个可以运行并能出现错误的demo 给我们试试 ...

        private void UserMenu_Load(object sender, EventArgs e)
        {
           // SearchData();


            string[] strMenu = { "11","22","33" ,"44"};

            PopListGroup grpSel = new PopListGroup();
            for (int i = 0; i < 5; i++)
            {
                PopListGroup grpContainer = new PopListGroup();
                grpContainer.TitleVisible = true;
                grpContainer.Title ="Title"+ i.ToString();
                for (int j = 0; j < 5; j++)
                {
                    PopListItem ivi = new PopListItem();
                    ivi.Value = i.ToString()+j.ToString();
                    ivi.Text = j.ToString();
                    grpContainer.Items.Add(ivi);
                    if (strMenu.Contains(ivi.Value))
                    {
                        grpSel.Items.Add(ivi);
                    }
                }
                popList1.Groups.Add(grpContainer);
            }

            popList1.ClearSelection();
            foreach (PopListItem item in grpSel.Items)
            {
                popList1.SetSelections(item);
            }
            popList1.ShowDialog();
        }


作者: Lula.Jin    时间: 2021-8-10 15:46
目前的解决方是:SetSelections方法的参数请从poplistview.Group中取,
例如 foreach (PopListItem item in popList1.Groups[0].Items)
            {
                popList1.SetSelections(item);
            }
作者: feitianchong    时间: 2021-8-10 17:26
Lula.Jin 发表于 2021-8-10 15:46
目前的解决方是:SetSelections方法的参数请从poplistview.Group中取,
例如 foreach (PopListItem item in ...

谢谢解决了。发现还可以在Groups.Add 之前设置好默认选择就可以了




欢迎光临 Smobiler上海石磨_.NET移动开发平台 (https://www.smobiler.com/) Powered by Discuz! X3.2