2010-07-09 42 views
0

我有,有一個名稱公司如何在CREATE視圖中動態構建對象列表?

我希望能夠建立多個員工在一個CREATE視圖的員工模型。我想我需要創建一個IList<Employee>並做類似:

<%= Html.TextBoxFor(m => m[0].Name) %> 
<%= Html.TextBoxFor(m => m[0].Company) %> 

<%= Html.TextBoxFor(m => m[1].Name) %> 
<%= Html.TextBoxFor(m => m[1].Company) %> 

如果用戶點擊「添加其他員工」,我想視圖,使另一種形式爲新員工:

<%= Html.TextBoxFor(m => m[3].Name) %> 
<%= Html.TextBoxFor(m => m[3].Company) %> 

並繼續添加表單項(如果再次單擊它,則增加數組索引)。

請記住,我需要在創建視圖中動態構建表單和列表。我還沒有員工的填充列表。

我該怎麼做?代碼示例將是巨大的,因爲我很新的ASP.NET

回答

0

我昨天
Programmatically add controls to form

此示例將項目按鈕點擊一個List(Of T)回答過類似的問題,但你可以添加項目一個控制列表,但你喜歡。

基本上你會創建一個具有多個對象屬性的類來存儲它。

然後您將項目添加到集合。

Imports System.Collections.Generic 


Partial Class Default2 
    Inherits System.Web.UI.Page 

    ''# we need to create an array of our control list class 
    Public Shared _empList As List(Of EmployeeList) 



    ''# button click event 
    Protected Sub AddStuff 

     ''# create a new employee 
     Dim emp As Employee = New Employee 
     With emp 
      .Name = "Joe" 
      .Company = "Acme Welding" 
     End With 

     ''# add the employee to our custom array 
     _empList.Add(New ControlList(emp)) 

    End Sub 



    ''# this is our custom Employee List 
    ''# the idea behind this is for us to store 
    Public Class EmployeeList 
     Private _employee As Employee 
     Public Property Employee As Employee 
      Get 
       Return _employee 
      End Get 
      Set(ByVal value As Employee) 
       _employee = value 
      End Set 
     End Property 

     Public Sub New(ByVal employee As Employee) 
      _employee = employee 
     End Sub 

    End Class 


End Class 

注意,你實際上並不需要使用EmployeeList的類來做到這一點,你可以簡單地創建一個由L2S/EF建已經存在的「僱員」類的列表等

然後,您將_empList傳遞給視圖並使用foreach循環遍歷它。

編輯:

嘗試沿着這些線路

public ActionResult ListEmployees() 
{ 
    List<Employee> _empList = new List<Employee>(); 

    //'# create a new employee 
    Employee emp = new Employee(); 
    { 
     emp.Name = "Joe"; 
     emp.Company = "Acme Welding"; 
    } 

    //'# add the employee to our custom array 
    _empList.Add(new emp); 

    return View(_empList); 
} 

然後在你的看法,你做這樣的事情

<% 
foreach (var employee in Model) 
{ 
    %> 
    <p>Dude's Name: <%= Html.TextBoxFor(employee.Name) %></p> 
    <p>Dude's Company: <%= Html.TextBoxFor(employee.Company) %></p> 
    <% 
} 
%> 
+0

你能一步我通過在C#而言,如果它不是太東西很麻煩?儘管你的解決方案聽起來像是可行的。 – Fred 2010-07-09 04:34:26

+0

看到我上面的編輯。 – 2010-07-09 04:37:34

相關問題