0

我的项目中有两个从 EntityDataSource 绑定的下拉列表。第二个 Dropdownlist 必须基于第一个 DropDownlist 绑定。我怎样才能做到这一点?

问题

4

3 回答 3

1

如果你使用的是 ASP.net AJAX,AJAX 控件工具包中有一个控件叫做“Cascading DropDown”,你可以使用它。

质谱样品

于 2012-06-02T07:25:20.730 回答
0

假设 Entity1 的 ID、Name 为属性,Entity2 的 ID、Entity1ID、OrderNumber 为属性。

绑定

`Dropdownlist1.Datasource = list(of Entity1)
 Dropdownlist1.DataValueField = "ID"
 Dropdownlist1.DataTextField = "Name"
 Dropdownlist1.databind()`

在 dropdownlist1 的 selectedvalue 更改事件上,检查用户是否选择了有效值,然后从 Entity2 数据源进行 linq 搜索并将其绑定到 Dropdownlist2。

您也可以使用 Avani 提到的级联下拉列表。

于 2013-11-28T11:41:38.297 回答
0

如果您不需要回发,您可以这样做:

<select id="s1" >
    <option>-----</option>
    <option>item 1</option>
    <option>item 2</option>
    <option>item 3</option>
</select>

<br />

<select id="s2" >
</select>​

<script type="text/javascript">
    var s1 = document.getElementById("s1");
    var s2 = document.getElementById("s2");

    s1.onchange = function () {
        s2.options.length = 0;
        var value = this.value;

        if (value != "-----") {
            var opt = document.createElement("OPTION");
            opt.text = "sub " + value;
            opt.value = "sub " + value;
            s2.options.add(opt);
        }
    }
</script>

或者您可以在服务器端执行相同的逻辑,但这会将回发带到现场。

于 2012-06-02T08:18:19.067 回答