2016-04-04 3 views
0

Я новичок в MVC. У меня есть 2 таблицы, а именно tb_RepDetails и tb_AgentDetails.In View, пользователь может выбрать «Представитель» или «Агент» через кнопку «Радио». Поэтому, основываясь на выборе пользователя, в раскрывающемся списке будет привязано «RepId» или «AgentId». хотите передать выбранный «Id» (VARCHAR) в качестве параметра в хранимой процедуре.Привязка из таблицы на основе переключателя выбранного значения

<tr> 
    <td><b>Mediator</b> </td> 
    <td>:</td> 
    <td> 
     <input type="radio" name="Mediator" id="Rep1" value="Representative" style="width:5%" checked="checked" />REPRESENTATIVE 
     <input type="radio" name="Mediator" id="Agent1" value="Agent" style="width:5%" />AGENT 
    </td> 
</tr> 
<tr> 
    <td><b>Identificaton Number</b> </td> 
    <td>:</td> 
    <td> 
     @Html.DropDownList("EmpNo", new SelectList(ViewBag.Emp), "select", new { required = "required", style = "height:28px", onchange = "detailsempt()" })<b style="color: red;">*</b> <span id="IDddl"></span> 
    </td> 
</tr> 
<script> 
    function detailsempt() { 
     $.ajax({ 
      url: '@Url.Action("GetEmpDetails", "Advertiser")', 
      type: 'post', 
      dataType: 'json', 
      data: { Usr: $("#EmpNo").val() }, 
      async: false, 
      success: function (data) { 
       $("#MedDetails").val(data); 
      } 
     }); 
    } 
</script> 

enter image description here

+0

Вы желая изменить параметры в DropDownList на основе значения выбранной кнопки радио? –

+0

Да. Как на картинке: Если пользователь выбирает «Агент», то идентификаторы агента привязаны из таблицы «tb_AgentDetails». Javascipt i написал для отображения Emp Name, Обозначение в текстовом поле на основе выбора из выпадающего списка – Hari

+0

Затем вам нужно обработать событие «.change()» переключателей и использовать ajax для вызова метода контроллера (передача значения выбранная кнопка), которая возвращает данные для построения параметров. –

ответ

0

По руководящим указаниям по СТЕПЕНИ Muecke и другому я сделал эту задачу. Я даю код, чтобы он помог другим людям в будущем. Добро пожаловать, если кто-нибудь может просто это сделать.

 <tr> 
      <td><b>Payment Method</b> </td> 
      <td>:</td> 
      <td> 
       @foreach (var pay in ViewBag.RadioPayList) 
       { 
        <input type="radio" name="Payment" style="width:5%" value="@pay" required onclick="selectPayMode(this)" />@pay 
       } 
      </td> 
     </tr> 
     <tr> 
      <td><b>Mediator</b> </td> 
      <td>:</td> 
      <td> 
       @foreach (var i in ViewBag.RadioList) 
       { 
        <input type="radio" name="Mediator" style="width:5%" value="@i" required onclick="selectEmpid(this)" />@i 
       } 
      </td> 
     </tr> 

JQuery:

 <script src="~/Scripts/jquery-1.11.1.min.js"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
     //First time according the checked radio button to populate ddl 
     RadioLoadData(); 
     $("input[name='Mediator']").change(function() { 
      //reload dropdownlist 
      RadioLoadData(); 
     }) 
    }); 

    function RadioLoadData() { 
     $("input[name='Mediator']").each(function() { 
      if ($(this).is(":checked")) { 
       var value = $(this).val(); 
       var ddlId = $("#ddlEmpNo"); 
       $.ajax({ 
        type: "Post", 
        url: '@Url.Action("GetEmpId", "Advertiser")', 
        data: '{value: "' + value + '"}', 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        success: function (data) { 
         ddlId.html(""); 
         //var selectvalue = ""; 
         for (var i = 0; i < data.length; i++) { 
          ddlId.append($('<option></option>').val(data[i].Value).html(data[i].Text)); 
         } 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { 
         alert('Failed to retrieve ID Numbers'); 
        } 
       }); 
      } 
     }); 
    } 
</script> 

CONTROLLER:

 public JsonResult GetEmpId(string value) 
    { 
     List<SelectListItem> items = new List<SelectListItem>(); 
     string connstr1 = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; 
     SqlConnection con = new SqlConnection(connstr1); 
     con.Open(); 
     List<SelectListItem> list = new List<SelectListItem>(); 
     if (value == "AGENT") 
     { 
      // query the tb_AgentDetails table and get values. 
      SqlCommand cmd1 = new SqlCommand("select AgentId from tb_AgentDetails", con); 
      using (SqlDataReader rdr = cmd1.ExecuteReader()) 
      { 
       List<string> result = new List<string>(); 
       while (rdr.Read()) 
       { 
        string EmpId = rdr["AgentId"].ToString(); 
        result.Add(EmpId); 
       } 
       rdr.Close(); 

       for (int i = 0; i < result.Count; i++) 
       { 
        list.Add(new SelectListItem { Text = result[i].ToString(), Value = result[i].ToString() }); 
       } 
       con.Close(); 
      } 
     } 
     if (value == "REPRESENTATIVE") 
     { 
      //query the tb_RepDetails table and get values. 
      SqlCommand cmd1 = new SqlCommand("select RepId from tb_RepDetails", con); 
      using (SqlDataReader rdr = cmd1.ExecuteReader()) 
      { 
        List<string> result = new List<string>(); 
        while (rdr.Read()) 
        { 
         string EmpId = rdr["RepId"].ToString(); 
         result.Add(EmpId); 
        } 
        rdr.Close(); 

        for (int i = 0; i < result.Count; i++) 
        { 
         list.Add(new SelectListItem { Text = result[i].ToString(), Value = result[i].ToString() }); 
        } 
        con.Close(); 
      } 
     } 
     return Json(list, JsonRequestBehavior.AllowGet); 
    } 
Смежные вопросы