EntityDataSource和DropDown

时间:2012-06-02 06:57:59

标签: asp.net linq entity-framework linq-to-sql entity-framework-4

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

Problem

3 个答案:

答案 0 :(得分:1)

如果您使用的是ASP.net AJAX,AJAX控件工具包有一个名为“Cascading DropDown”的控件,您可以使用它。

MS Sample

答案 1 :(得分: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>

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

答案 2 :(得分:0)

假设Entity1具有ID,Name作为属性,Entity2具有ID,Entity1ID,OrderNumber作为属性。

绑定

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

on dropvallist1的selectedvalue change事件检查用户是否选择了有效值,然后从Entity2数据源执行linq搜索并将其绑定到Dropdownlist2。

你也可以选择Avani所提到的级联下拉列表。