0

2つのテーブルがあります

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>

alistview

<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

これを解決する 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 に答える