2012-01-31 16 views
0

我有一個CSS #MainDiv,它包含左側的#TreeDiv和右側的#DataGridDiv。將用戶界面劃分爲asp.net mvc視圖

TreeDiv包含一個帶有Department對象的Javascript Treeview,DataGridDiv 包含一個帶有Employee對象的Datagrid。

在樹視圖中更改部門的選擇應該也會更改DataGrid中的相關員工對象。

我已經設置了一個DepartmentController。兩個控件都應該能夠通過互相獨立的ajax 接收數據。

1)什麼樣的對象應該我的索引方法返回以顯示在視圖中聚合的數據?

2.)我應該如何將控件分成哪些視圖?

回答

0

2.)我應該如何將控件分成哪些視圖?

用#MainDiv,#TreeDiv和#DatagridDiv創建一個視圖。讓#TreeDiv託管您的樹形控件(您已經知道這一點)。創建一個局部視圖來顯示員工對象的數據網格。讓#DatagridDiv承載這個部分視圖。

現在,當在樹形控件中選擇一個部門時,可以對控制器方法進行ajax調用,該方法接受部門並返回包含員工數據的部分視圖。用返回的數據更新#DatagridDiv。

或者,如果您對Json感到滿意,您的控制器方法可以以Json格式(而不是部分視圖)返回僱員數據,您可以使用javascript/jquery將其填充到#datagridDiv內的html表中。

1.)我的Index方法返回什麼樣的對象來在視圖中顯示這個聚合數據?

在Index方法中,您可以返回您的視圖,其中包含所有3個Div和使用樹控件填充的#TreeDiv。在客戶端加載頁面時,您可以識別所選部門進行ajax調用並更新#datagridDiv。這種方法在客戶端會有滯後,但是您可以使用它來顯示一些動畫,指示頁面正在加載/ div正在更新。

如果您不想添加此滯後期,請確定加載樹視圖時將選擇的部門並填充該部門的部分視圖,將其添加到服務器端的#datagridDiv並投放。

+0

爲什麼我必須爲我的dataggriddiv創建一個部分? – Pascal 2012-02-06 16:38:22

+0

查看由一個完整的html頁面以及頭部和身體標籤組成。而部分視圖將只呈現html標籤(代表其中的控件)。由於您只是通過ajax調用更新div,所以最好有局部視圖。 – Rakesh 2012-02-07 07:45:46

+0

爲什麼你不建議我也爲TreeControl創建一個局部視圖,它使用add/del節點更新ajax? – Pascal 2012-02-07 09:24:15