我在Telerik論壇上詢問了這個問題,但沒有回覆,所以我對你很感興趣。如何在使用多個表格作爲數據源時編輯Telerik RadGrid
我以前見過這個話題,但沒有答案,所以我想我會盡可能簡單地定義問題。
我有一個LINQ命令創建一個查詢:在dc.aspnet_Users 從太子港
VAR的GridData =在dc.aspnet_UsersInRoles加入黃色葡萄球菌
上au.UserId等於aur.UserId 加入AR在dc.aspnet_Roles
上aur.RoleId等於ar.RoleId 加入我在dc.aspnet_Memberships
上au.UserId等於am.UserId 選擇新 { au.UserName, ar.RoleName, am.Email, am.IsApproved, am.IsLockedOut };
重要的一點是,這使用了超過1張桌子。
注意:這是使用標準的ASP.NET成員框架訪問角色和用戶表。
然後我有一個簡單radgrid控件:
<MasterTableView EditMode="InPlace">
<RowIndicatorColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn>
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
</MasterTableView>
最後,我的數據到電網結合在Page_Load中
rgUsers.AutoGenerateColumns = true;
rgUsers.DataSource = gridData.ToList();
rgUsers.DataBind();
rgUsers.EditIndexes.Add(1);
rgUsers.DataBind();
GridView1.AutoGenerateColumns = true;
GridView1.DataSource = gridData.ToList();
GridView1.DataBind();
GridView1.EditIndex=1;
GridView1.DataBind();
這將顯示從所述數據4個表格正確。
我包括一個GridView來比較功能。
我也將網格編程編輯模式,以確保這不僅僅是編輯按鈕的問題。
但是,在編輯模式下時,RadGrid字段不可編輯。
我曾嘗試以下:
1)1)我可以使用的LinqDataSource允許編輯/更新,但僅如果只有1中的LINQ查詢表。
2)2)我可以在數據集上使用一個ObjectDataSource,但這隻有在數據集適配器訪問單個表時纔有效。
我已經看過了variouse建議演示和示例代碼,但他們都忽略了多臺/加入的問題:
www.telerik.com/community/code-library/aspnet-ajax/grid/automatic -operations-with-linqdatasource.aspx
demos.telerik.com/aspnet-ajax/grid/examples/dataediting/threelevel/defaultcs。ASPX
www.telerik.com/community/code-library/aspnet-ajax/grid/automatic-operations-with-linqdatasource.aspx
我不是執着於LINQ。爲了獲得可以支持更新和編輯到多個表格的RadGrid,我很樂意進行調整。
我應該怎麼做才能實現一個RadGrid,顯示由多個表組成的記錄,其中Update和Edit可用?
感謝所有幫助 理查德