2012-07-19 34 views
-1

嗨,大家好,我必須通過從複選框選中的值,並從下拉菜單中選擇值,在MVC3中獲取選中的Chechkbox和Selected DropDown的值?

我的看法是這樣的

     Project:DropDown 
        ----------------------------- 
      EmployeeNames 
     -------------------------- 
     checkbox,AnilKumar 
     checkBox,Ghouse 

this is my aspx page 

     <body> 
<% using (Html.BeginForm()) 
    { %> 

<%:Html.ValidationSummary(TRUE)%>

<div></div><div style="margin:62px 0 0 207px;"><a style="color:Orange;">Projects : </a><%:Html.DropDownList("Projects")%></div> 
<fieldset style="color:Orange;"> 

    <legend>Employees</legend> 
     <% foreach (var item in Model) 
     { %> 
       <div> 
       <%:Html.CheckBox(item.EmployeeName)%> 
       <%:Html.LabelForModel(item.EmployeeName)%> 
       </div> 
     <%} %> 
     <%} %> 
</fieldset> 
<p> 
<input type="button" value="AssignWork" /></p> 

    </div> 
</body> 

我必須得到所有選中的僱員名稱與選定的項目ID從下拉列表到我的post方法..我可以做這個任何人可以幫我在這裏p租賃

this is my controller 

     [AcceptVerbs(HttpVerbs.Get)] 
public ActionResult AssignWork() 
{ 
    ViewBag.Projects = new SelectList(GetProjects(), "ProjectId", "ProjectName");  
    var employee = GetEmployeeList();  
    return View(employee); 
} 

    public List<ResourceModel> GetEmployeeList() 
{ 
     var EmployeeList = new List<ResourceModel>(); 
     using (SqlConnection conn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True")) 
     { 
      conn.Open(); 
      SqlCommand dCmd = new SqlCommand("select EmployeId,EmployeeName from EmployeeDetails", conn); 
      SqlDataAdapter da = new SqlDataAdapter(dCmd); 
      DataSet ds = new DataSet(); 
      da.Fill(ds); 
      conn.Close(); 
      for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) 
      { 
       var model = new ResourceModel(); 
       model.EmployeeId = Convert.ToInt16(ds.Tables[0].Rows[i]["EmployeId"]); 
       model.EmployeeName = ds.Tables[0].Rows[i]["EmployeeName"].ToString(); 
       EmployeeList.Add(model); 
      } 
      return EmployeeList; 
     } 
} 

    public List<ResourceModel> GetProjects() 
    { 
     var roles = new List<ResourceModel>(); 
     SqlConnection conn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True"); 
     SqlCommand Cmd = new SqlCommand("Select ProjectId,projectName from Projects", conn); 
     conn.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(Cmd); 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     for (int i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) 
     {         
      var model = new ResourceModel(); 
      model.ProjectId= Convert.ToInt16(ds.Tables[0].Rows[i]["ProjectId"]); 
      model.ProjectName = ds.Tables[0].Rows[i]["projectName"].ToString();    
      roles.Add(model); 
     } 
      conn.Close(); 
      return roles ; 

    } 

    [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult AssignWork(int projectid,string EmployeeName,FormCollection form,ResourceModel model) 
    { 

     using (SqlConnection conn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True")) 
     { 
      conn.Open(); 
      SqlCommand insertcommande = new SqlCommand("AssignWork", conn); 
      insertcommande.CommandType = CommandType.StoredProcedure; 
      insertcommande.Parameters.Add("@EmployeeName", SqlDbType.VarChar).Value = EmployeeName; 
      insertcommande.Parameters.Add("@projectId", SqlDbType.VarChar).Value = projectid; 
      //insertcommande.Parameters.Add("@Status", SqlDbType.VarChar).Value = model.status; 
      insertcommande.ExecuteNonQuery(); 
     } 
     return View(); 

    } 

回答

0

我這個

  [AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult AssignWork(FormCollection collection, string Projects, string EmployeId) 
    { 
     ViewBag.Projects = new SelectList(GetProjects(), "ProjectId", "ProjectName"); 
     if (!string.IsNullOrEmpty(collection["EmployeId"])) 
     { 
      //formCollection["check"] is a string content checked box value with format value1,value2,valu3.... 
      string[] temp = collection["EmployeId"].Split(','); 
      for (int i = 0; i < temp.Length; i++) 
      { 
       EmployeId = temp[i]; 
       if (EmployeId != "false") 
       { 

        SqlConnection Assignworkconn = new SqlConnection("Data Source=LMIT-0039;Initial Catalog=BugTracker;Integrated Security=True"); 
        { 
         Assignworkconn.Open(); 
         SqlCommand insertcommande = new SqlCommand("AssignWork", Assignworkconn); 
         insertcommande.CommandType = CommandType.StoredProcedure; 
         insertcommande.Parameters.Add("@EmployeeName", SqlDbType.VarChar).Value = EmployeId; 
         insertcommande.Parameters.Add("@projectId", SqlDbType.Int).Value = Projects; 
         //put your insert code here with temp[i] is checked box value 
         insertcommande.ExecuteNonQuery(); 
        } 
       } 
      } 
     } 
     return RedirectToAction("AssignWork"); 
    } 
改變AssignWork POST方法
0

我所做的就是創建一個我聯播的提交按鈕,通過複選框循環的click事件的jQuery的功能,抓住它們的ID,建立他們的一個逗號分隔的列表,併發送到控制器。在控制器中,您可以將逗號分割爲字符串,並處理各個項目。我現在無法訪問此代碼,但可以稍後再發布,如果需要的話。

您也可以代替逗號分隔的列表構建一個JSON字符串以發送回控制器並處理控制器上的JSON字符串。

希望這會有所幫助。

相關問題