标签: multi-select

WPF Datagrid - 行的编程选择似乎破坏了多选(特别是按住 Shift 键单击多选)

我有一个 WPF DataGrid 控件,其 SelectionUnit 为“FullRow”,SelectionMode 为“Extended”,我正在以编程方式选择其中的项目(通常是第一个项目)。该选择有效,但由于某种原因,任何形式的程序选择似乎都会破坏移位选择多选功能。

如果我单击 DataGrid 中的另一个项目(因此我刚刚单击的项目是唯一选定的项目),则 Shift-Select 将起作用。只有当我以编程方式选择该项目时,它似乎才会中断。此外,在任何一种情况下,按住 Control 键单击都可以选择多个项目——似乎只有 Shift 键选择被破坏了。

我尝试过以编程方式选择单个项目的各种形式,从简单的 myGrid.SelectedIndex = 0 到使用 DataGrid 的 ItemContainerGenerator 获取 DataGridRow 对象的实例并在其上设置 IsSelected = true,但都无济于事。

重申一下——以编程方式选择项目是可行的,但它会破坏按住 Shift 键并单击的选择。

以前有人遇到过这个吗?我尝试将焦点设置在以编程方式选择的 DataGridRow 实例上,但它似乎没有帮助?

wpf datagrid multi-select

5
推荐指数
1
解决办法
3100
查看次数

将选定的项目移至已排序的多项选择的顶部(Javascript)

我正在使用jQueryUI 多选小部件,它为多选绘制了一个漂亮的下拉菜单小部件。

我已经排序了(在用户名上)多重选择,如下所示:

<select multiple="multiple" name="users" id="id_users">
<option value="1" selected="selected">aaa</option>
<option value="44">bbb</option>
<option value="21" selected="selected">ccc</option>
<option value="50">ddd</option>
<option value="16">eee</option>
<option value="25" selected="selected">fff</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我想保持用户名排序,但每次用户打开下拉菜单时将所选项目移动到列表顶部。因此,在此示例中,新顺序必须是:

<select multiple="multiple" name="users" id="id_users">
<option value="1" selected="selected">aaa</option>
<option value="21" selected="selected">ccc</option>
<option value="25" selected="selected">fff</option>
<option value="44">bbb</option>
<option value="50">ddd</option>
<option value="16">eee</option>
</select>
Run Code Online (Sandbox Code Playgroud)

从该小部件的网站上,我看到它有一个返回所选项目数组的方法,并且它有一个 beforeopen 事件。所以我认为我可以通过处理 beforeopen 事件来管理排序(使用该数组),但我对 javascript 相当陌生,任何人都可以指出我正确的方向吗?

我在这里搜索,我找到的所有解决方案都解决了“按文本排序”的问题(这不是我需要的)。

编辑:我用这种方式解决了:

$('#id_users').multiselect({
    beforeopen: function(event, ui) {
        $('#id_users option:selected').prependTo('#id_users');
        $('#id_users').multiselect('refresh');
    }
});
Run Code Online (Sandbox Code Playgroud)

因此,在小部件的初始化中,我将这两行代码绑定到 beforeopen 事件。在 beforeopen 的处理中,我将所选项目添加到其他项目之前,并刷新小部件(因为它只读取多选一次,并且如果不刷新,即使 HTML 发生更改,顺序也保持不变)。

我无法投票赞成答案,因为我没有足够的声誉。但谢谢!

html javascript sorting jquery multi-select

5
推荐指数
1
解决办法
5610
查看次数

jqueryui 可使用嵌套列表进行选择 - 选择/取消选择父项应选择/取消选择其所有子项

我正在尝试使用嵌套 UL 和 jqueryUI 可选构建一个两级多选控件。

目前,我将选择限制为子级别,但我真正想要的是能够选择父 LI 并选择其所有子 LI。更进一步,我希望能够选择所有子 LI 并选择其父级。任何少于选定的所有子 LI 的内容都将导致父级 LI 被取消选择。

基本标记:

<ul id="theParentList">
    <li>Parent 1
        <ul>
            <li>Child 1.1</li>
            <li>Child 1.2</li>
        </ul>
    </li>
    <li>Parent 2
        <ul>
            <li>Child 2.1</li>
            <li>Child 2.2</li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

和当前的 JavaScript:

$('#theParentList').selectable({filter: 'li li'});
Run Code Online (Sandbox Code Playgroud)

我将如何完成第一部分:选择父级会选择其所有子级?

谢谢!

更新:
我现在已经了解了这个概念的大部分内容:
选择父项会选择它的所有子项;
取消选择子项将取消选择其父项

仍然不起作用:选择父级的所有子级应该选择父级

这就是我现在所得到的:

标记:

<ul id="theParentList">
    <li class="level-1">
        <div>Parent 1</div>
        <ul class="level-2">
            <li><div>Child 1.1</div></li>
            <li><div>Child 1.2</div></li>
        </ul>
    </li>
    <li class="level-1"><div>Parent 2</div>
        <ul class="level-2">
            <li><div>Child 2.1</div></li>
            <li><div>Child 2.2</div></li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

和js:

    function SelectSelectableElement …
Run Code Online (Sandbox Code Playgroud)

multi-select jquery-ui-selectable

5
推荐指数
1
解决办法
2214
查看次数

MS访问表单:组合框到多选下拉菜单

我有一个几年前为我的公司制作的 MS Access 数据库。我正在尝试将表单条目从组合框更改为多选组合框(复选框)。目前,只能保存一个值,我希望能够保存多个值。

组合框的数据来自单独的表。

在表单设置中,访问权限仅允许我将组合框更改为列表框或文本框,但这两个选项都不允许我选择多个值。

帮助。

database ms-access combobox multi-select ms-access-forms

5
推荐指数
1
解决办法
2万
查看次数

如何使用 Selenium-Python 从多选列表中选择多个选项?

我正在尝试从有 10 个选项的多项选择中选择P0_ENGLISH, P1_ENGLISH, 。P5_ENGLISH我只想选择这 3 个选项。

HTML 代码:

<select multiple="" class="gwt-ListBox" style="height: 80px; width: 205px;">
    <option title="Generic_Eng" value="Generic_Eng">Generic_Eng</option>
    <option title="Generic_Hindi" value="Generic_Hindi">Generic_Hindi</option>
    <option title="P0_English" value="P0_English">P0_English</option>
    <option title="P0_Hindi" value="P0_Hindi">P0_Hindi</option>
    <option title="P1_English" value="P1_English">P1_English</option>
    <option title="P1_Hindi" value="P1_Hindi">P1_Hindi</option>
    <option title="P4_English" value="P4_English">P4_English</option>
    <option title="P4_Hindi" value="P4_Hindi">P4_Hindi</option>
    <option title="P5_English" value="P5_English">P5_English</option>
    <option title="P5_Hindi" value="P5_Hindi">P5_Hindi</option>
</select>
Run Code Online (Sandbox Code Playgroud)

硒-Python代码:

queues = Select(driver.find_element_by_css_selector(".rowStyle1:nth-child(6) .gwt-ListBox"))
queues.select_by_visible_text("P0_English")
time.sleep(3)
queues.select_by_visible_text("P1_English")
time.sleep(3)
queues.select_by_visible_text("P5_English"
Run Code Online (Sandbox Code Playgroud)

我尝试过使用这段代码。使用此代码,我可以选择第一个选项,即“P0_ENGLISH”。但是,选择第一个选项后出现错误:

selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document
Run Code Online (Sandbox Code Playgroud)

python selenium webdriver multi-select selenium-webdriver

5
推荐指数
1
解决办法
1万
查看次数

如果我只有一个选项属性,如何在 vue-multiselect 中设置默认值?

我有一个选项数组,它显示在多选选项中。但我需要选择一个提供 id 的默认选项。在我的代码中,我需要选择 id = 2 的默认选项。如何在 vue.js 中使用多选来做到这一点?

<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vue-multiselect@2.1.0"></script>
<link rel="stylesheet" href="https://unpkg.com/vue-multiselect@2.1.0/dist/vue-multiselect.min.css">

<div id="vue-app2">
    <div>
        <label class="typo__label">Single select / dropdown</label>
        <multiselect v-model="value" deselect-label="Can't remove this value" track-by="id" label="name"
            placeholder="Select one" :options="options" :searchable="false" :allow-empty="false">
            <template slot="singleLabel" slot-scope="{ option }"><strong>{{ option.name }}</strong> is written
                in<strong> {{ option.language }}</strong></template>
        </multiselect>
        <pre class="language-json"><code>{{ value  }}</code></pre>
    </div>
</div>
<script >
Vue.component('multiselect', window.VueMultiselect.default);

new Vue({
    el: '#vue-app2',
    data: {
        id:2,
        value:null,
        options: [
            { id:1, name: 'Vue.js', language: 'JavaScript' },
            { id:2, …
Run Code Online (Sandbox Code Playgroud)

multi-select vue.js vue-component

5
推荐指数
1
解决办法
6370
查看次数

如何在 ng-multiselect-dropdown Angular 7 中将所选文本和复选框蓝色更改为灰色

我正在研究 ng-multi-select 下拉菜单(在 Angular7 中),并且我能够在外部更改宽度大小。但是,我无法更改所选文本的颜色,也无法更改复选框颜色。简而言之,我需要将蓝色更改为灰色。我尝试了不同的解决方案但没有成功。我可以从下面的代码中看到我做错了什么吗?

样本图像

css multi-select angular

5
推荐指数
1
解决办法
3005
查看次数

通过滑动进行颤动多个字母选择(运动事件)

我需要通过拖动字母来创建单词。\n我进行了搜索,但找不到足够的代码来检测运动事件。\n我想通过用手指滑动来选择多个字母,并从所选字母创建单词。\n我需要制作一个如下所示的单词益智游戏。\ n在此输入图像描述\n我怎样才能制作这样的游戏?\n\xc2\xa0

\n

multi-select motion sliding flutter flutter-animation

5
推荐指数
2
解决办法
980
查看次数

Material UI 使用 value 属性中的对象选择多个组件,添加重复条目

我有一个多重选择,我将一个对象传递到具有结构的 value 属性中:

在此输入图像描述

选择组件如下所示:

<Select
            multiple
            value={entities}
            onChange={handleChange}
            input={<Input />}
            renderValue={(selected) => (
              <div className={classes.chips}>
                {selected.map((value) => (
                  <Chip
                    key={value.entityId}
                    label={value.entityName}
                    className={classes.chip}
                  />
                ))}
              </div>
            )}
          >
            {props.entityList.map((item, index) => (
              <MenuItem key={item.entityId} value={item}>
                {item.entityName}
              </MenuItem>
            ))}
          </Select>
Run Code Online (Sandbox Code Playgroud)

当弹出选择时,它会显示正确的实体名称,但不会将其显示为在下拉列表中选择。

如果我在下拉列表中选择此项目,它会添加另一个具有相同 id 和相同名称的条目,而不是删除已经存在的项目,这个新添加的重复项可以被删除,并在选择时突出显示,因此该功能可以正常工作。

我存储entities的状态类似于来自父组件的状态:

在此输入图像描述

解决方案:

我已确保在选择中使用相同的对象,初始对象与在更改函数中分配的对象不同。这解决了我的问题。

const [entities, setEntity] = React.useState(
props.entityList.filter((e) =>
  props.assignedEntities.some((ae) => e.entityId === ae.entityId)
)
Run Code Online (Sandbox Code Playgroud)

);

multi-select reactjs material-ui react-redux

5
推荐指数
1
解决办法
1万
查看次数

有没有办法在python的streamlit包的多选小部件中添加“全选”选项?

我正在开发一个streamlit应用程序,其中包含一个带有 10 个选项的多选小部件。是否有替代方法可以添加一个选择所有选项的按钮,以避免一个一个地选择它们?

我尝试向多选添加上一个按钮,但使用另一个小部件会重置选择。这是一个示例代码:

import streamlit as st

if st.sidebar.button('Add all years'):
    year_filter = st.sidebar.multiselect('Select a year',[2000,2001,2002,2003,2004], default=[2000,2001,2002,2003,2004])
else:
    year_filter = st.sidebar.multiselect('Select a year',[2000,2001,2002,2003,2004], default=[2000])

type_filter = st.sidebar.multiselect('Choose a type',['Control','Experimental'], default=['Experimental'])

st.write(year_filter, type_filter)
Run Code Online (Sandbox Code Playgroud)

python multi-select streamlit

5
推荐指数
1
解决办法
2048
查看次数