0

有两张桌子

EmpInf
    EmpId,
    EmpName,
    Salary,
    DepartNumber.

Dept
    DeptNo,
    Deptname,

我有一个linqdatasource control比如

<asp:LinqDataSource ID="LinqDataSource1" runat="server" EntityTypeName="" 
    ContextTypeName="FilterControl.DataClasses1DataContext" EnableDelete="True" 
    EnableInsert="True" EnableUpdate="True" OrderBy="DeptName"  
    TableName="Dept1s" Select="new (DeptNo, DeptName)">
</asp:LinqDataSource>

一种listview

<asp:ListView ID="ListView1" runat="server" DataSourceID="LinqDataSource1"
   style="z-index: 1; left: 10px; top: 34px; position: absolute; height: 63px; width: 293px" 
    >
    <AlternatingItemTemplate>
        <tr style="">
            <td>
                <asp:DynamicControl runat="server" DataField="DeptNo" Mode="ReadOnly" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptName" Mode="ReadOnly" />
            </td>
        </tr>
    </AlternatingItemTemplate>
    <EditItemTemplate>
        <tr style="">
            <td>
                <asp:Button ID="UpdateButton" runat="server" CommandName="Update" 
                    Text="Update" />
                <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                    Text="Cancel" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptNo" Mode="Edit" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptName" Mode="Edit" />
            </td>
        </tr>
    </EditItemTemplate>
    <EmptyDataTemplate>
        <table runat="server" style="">
            <tr>
                <td>
                    No data was returned.</td>
            </tr>
        </table>
    </EmptyDataTemplate>
    <InsertItemTemplate>
        <tr style="">
            <td>
                <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" 
                    ValidationGroup="Insert" />
                <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                    Text="Clear" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptNo" Mode="Insert" 
                    ValidationGroup="Insert" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptName" Mode="Insert" 
                    ValidationGroup="Insert" />
            </td>
        </tr>
    </InsertItemTemplate>
    <ItemTemplate>
        <tr style="">
            <td>
                <asp:DynamicControl runat="server" DataField="DeptNo" Mode="ReadOnly" />
            </td>
            <td>
                <asp:DynamicControl runat="server" DataField="DeptName" Mode="ReadOnly" />
            </td>
        </tr>
    </ItemTemplate>

并尝试通过listview动态数据来实现这一点,并使用了dynamic data manager control

<asp:DynamicDataManager ID="DynamicDataManager1" runat="server" >
<DataControls>
<asp:DataControlReference ControlID="ListView1" />
</DataControls>
</asp:DynamicDataManager>

我拿了一个dropdownlist,它绑定到EmpInf.Empname,当我从下拉列表中选择特定的员工姓名时,我想绑定部门名称。

在后端

FilterControl.DataClasses1DataContext obj = new DataClasses1DataContext();
        protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e)
        {



            var a = from r in obj.EmpInfs
                    join s in obj.Dept1s on r.DeptNumber equals s.DeptNo 
                    where r.EmpName ==  DropDownList1.SelectedValue  
                    select s.DeptName;



            ListView1.DataSource = a;
            ListView1.DataBind();



        }

在运行时,它会抛出一个异常,它会在执行过程中显示任何一个使用DataSourceID="LinqDataSource1" or use the datasource a the back end. remove one of them.,因此在此过程中不会返回任何内容。我该如何运行,需要建议。感谢您的帮助。

4

2 回答 2

1

解决此问题的一种方法是从 ListView 控件中删除 DataSourceID 并将数据绑定到 page_load

protected void Page_Load(object sender, EventArgs e)
{

   if(!Page.IsPostBack)
   {
      //Bind datasource to ListView here
   }
}

现在一切都应该正常了

于 2012-07-04T10:20:18.937 回答
0

FilterControl.DataClasses1DataContext obj = new DataClasses1DataContext(); protected void DropDownList1_SelectedIndexChanged1(对象发送者,EventArgs e){

        var a = from r in obj.EmpInfs
                join s in obj.Dept1s on r.DeptNumber equals s.DeptNo 
                where r.EmpName ==  DropDownList1.SelectedValue  
                select s;


        listview1.DatasourceId=null;
        ListView1.DataSource = a;
        ListView1.DataBind();



    }

也可以通过listview.DatasourceId=null上面的代码来解决

于 2012-07-04T11:12:05.650 回答