1

asp.netMVC-3でプロジェクトを開発しています。

これらの1つのモジュールで、チームを作成するためのビューを作成しました。その中で、プロジェクト名のドロップダウンリストが1つあります。ドロップダウンリストから選択したプロジェクトのメンバーを表示するリストボックス(ListBox-1)。選択したレコードまたはすべてのレコード(メンバーの名前)を転送/選択するための別のリストボックス(ListBox-2)があります。これはjavascriptを使用して完全に行われます。

その形式のデータベースにすべてのデータを保存する必要があります。その点で、2番目のリストボックス(ListBox-2)に表示されているチームメンバーのリストをデータベースに保存する必要があります。そして、これらの私の質問は、そのリストボックス(ListBox-2)のデータをフェッチして、データベースフィールドに保存する方法ですか?

以下は私の作成チームビューです... ここに画像の説明を入力してください

このフォームでは、最初のドロップダウンリストにプロジェクト名が表示されます。ドロップダウンリストの下には、プロジェクトのメンバー名を表示するために使用される2つのリストボックスがあります。

リストボックスのビューコードは以下の通りです。

Dropdownlist for Project
  <%: Html.DropDownListFor(model => model.availableproject, new SelectList(ViewBag.Projects as System.Collections.IEnumerable, "project_id", "project_name"),"Select Project", new { id = "ddlCars" })   %> 


code of listbox.
 <div class="ddlModels" style="float:left; ">
                              <%--  <%: Html.ListBox("projectmembers_id") %>  --%>
                                 <%: Html.ListBoxFor(Models => Models.availableuser, new SelectList(Enumerable.Empty<SelectListItem>(), "user_id", "user_login_name"),
                             new { id = "ddlModels2" }) %>


                            </div>

                            <div style="display:inline; float:left; margin-left:5px; margin-right:5px; margin-top:10px;">
                                <input type="button" name="add" id="alladd"  onclick="CopyListsall();" value=">>" style="width:27px; height:15px; font-size:8px; color:#56a1d6;"/><br />
                                <input type="button" name="add" id="add" onclick="CopyLists();"value=">" style="width:27px; height:15px; font-size:8px; color:#56a1d6;"/><br /><br />
                                <input type="button" name="remove" id="allremove"  onclick="RemoveListsall();" value="<<" style="width:27px; height:15px; font-size:8px; color:#56a1d6;" /><br />                
                                <input type="button" name="remove" id="remove"  onclick="RemoveLists();"  value="<" style="width:27px; height:15px; font-size:8px; color:#56a1d6;" />
                            </div>

                            <div class="ddlModels" style="float:left;">
                             <%: Html.ListBoxFor(Models => Models.availableuser, new SelectList(Enumerable.Empty<SelectListItem>(), "user_id", "user_login_name"),
                             new { id = "ddlModels1" }) %>
                             <%-- <%: Html.ListBox("projectmembers_id") %>--%>
                            </div>

モデルのコード(.csファイル)

namespace ProjectManagementSystem.Models
{
    public class TeamCreate
    {

        [Required(ErrorMessage = "Empty Not Allow")]
        public int team_id { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        [DisplayName("Team Name")]
        public string team_name { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int project_id { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public string project_name { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int projectmembers_id { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int projectmemberuser_id { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int user_id { get; set; }


        public int SerialNumber { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        [DisplayName("Team Leader")]
        public string user_real_name { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int technology_skill_id { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public string technology_skill_name { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public string team_description { get; set; }

        [Required(ErrorMessage = "Empty Not Allow")]
        public int leader_id { get; set; }


        public bool t1 { get; set; }

        public List<user_master> availableuser;
        public List<project_master> availableproject;
        public List<team_master> availableteam;
        public List<team_to_user> availableteamuser;

        public List<technology_skill_master> availabletechnology;

        public List<int> SelectSkill { get; set; }
        public List<int> lbtechnologyskillname2 { get; set; }

        public List<int> ddlModels { get; set; }
        public List<int> ddlModels1 { get; set; }

    }
}

データをフェッチするための2番目の.csファイル。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ProjectManagementSystem.Models
{
    public class TeamCreateFetch
    {
        private int counter = 1;


        //ProjectManagementSystemEntities3 pb = new ProjectManagementSystemEntities3();
        public static IList<TeamCreate> all()
        {     

            IList<TeamCreate> result =
                (IList<TeamCreate>)HttpContext.Current.Session["team1"];

            if (result == null)
            {
                ProjectManagementSystemEntities3 pb = new ProjectManagementSystemEntities3();

                HttpContext.Current.Session["team1"] = result =

                    ( from l in pb.team_master
                     join u in pb.user_master
                     on l.user_id equals u.user_id
                     select new TeamCreate
                     {
                         //SerialNumber= counter++,
                         team_id= l.team_id,
                         user_id = u.user_id,
                         team_name= l.team_name,
                         user_real_name=u.user_real_name,


            }

            return result;
        }
    }
}

私のデータベースは以下の通りです...

テーブル名-team_master

team_id
team_name
user_id(FK with user_id of "user_master")
team_description

表-2name-team_to _user

user_id(PK)
user_real_name

表-3name-team_to _user

team_id (FK with team id of "team_master")
user_id (FK with user_id of "user_master")

次に、2番目のリストボックスの値をuser_idフィールドのテーブル「team_to_user」に保存する必要があります。

では、MVC-3でそれを行う方法は??

前もって感謝します

4

1 に答える 1

0

デュアルリストボックスを廃止し、単一のMultiSelectListBoxとして実装することをお勧めします。

モデル

public class MyClass {
    [Required]
    [Display(Name = "Items Selected (Use ctl + click to select multiple)")]
    public int[] SelectedItems { get; set; }
    public IEnumerable<ItemDTO> Items { get; set; }
}

public class ItemDTO { 
    public int ID { get; set; }
    public string Name { get; set; }
}

景色

@Html.LabelFor(model => model.SelectedItems):                                                     
@Html.ListBoxFor(model => model.SelectedItems, new MultiSelectList(Model.Items, "ID", "Name", Model.SelectedItems))
@Html.ValidationMessageFor(model => model.SelectedItems)

コントローラで、SelectedItems配列をループして、それぞれを保存します。

于 2012-04-09T11:31:00.487 に答える