簡體   English   中英

使用asp:LinqDataSource的動態列

[英]Dynamic columns with asp:LinqDataSource

我像這樣使用LinqDataSource:

<asp:LinqDataSource ID="LinqDataSource3" runat="server"      OnSelecting="LinqDataSource3_OnSelecting">       

</asp:LinqDataSource>

我有ASPxGridView

<dxwgv:ASPxGridView ID="ASPxGridView2" ClientInstanceName="ASPxGridView2Client"
                            runat="server" AutoGenerateColumns="False" 
                            DataSourceID="LinqDataSource3">
                        </dxwgv:ASPxGridView>

這樣我就可以在處理onSelecting事件時動態添加列:

protected void LinqDataSource3_OnSelecting(object sender, LinqDataSourceSelectEventArgs e)
    {
        MyModelDataContext context = new MyModelDataContext();
        ASPxGridView grid = ASPxPageControl1.TabPages[3].FindControl("ASPxGridView2") as ASPxGridView;


        if(grid.Columns.Count == 0){
            GridViewDataTextColumn txtColumn1 = new GridViewDataTextColumn();
            GridViewDataTextColumn txtColumn2 = new GridViewDataTextColumn();
            txtColumn1.FieldName = "UserId";
            txtColumn2.FieldName = "FirstName";

            grid.Columns.Add(txtColumn1);
            grid.Columns.Add(txtColumn2);    
        }

        e.Result = from u in context.Users select new { UserId = u.UserId, FirstName = u.FirstName };
    } 

只是簡單地測試一下就可以了,原因是我的想法是擁有一種解決方案,該解決方案可以將linqDataSource用作de ASPxGridView的數據源,但可以連接2或3個表並在此網格中顯示結果。

我想問的是它是一個好的解決方案,還是有其他更好的方法可以通過聯接來呈現幾個表的視圖?

第二個問題是我有“用戶”和“組”,我想有一個表,其中有兩列“名稱”和“類型”

對於組,將按組鍵入,對於用戶,將鍵入user。

我的數據庫中沒有這樣的表

是否可以創建特定的類。 創建該類的對象列表,並使用linq查詢填充它,並將其用作該網格的linq數據源?

clas將是:

偽代碼:

Class MyClass {
string Type;
string Name;
}

還是有其他方法可以創建這樣的表?

非常感謝你再見

回答您的第一個問題,我想告訴您,創建列的代碼最好移到Page_Load事件。

至於第二個問題。 我認為在LinqDataSource對象的Selecting事件中提供自定義IQueriable是一個很好的解決方案。 您可以從那里的幾個表中獲取數據。 有關示例,請參閱:

使用LINQ從多個表中選擇

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM