2012-07-19 87 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字符串。

希望这会有所帮助。

相关问题