2016-04-04 19 views
0

Ich bin Neuling zu MVC. Ich habe 2 Tabellen nämlich tb_RepDetails und tb_AgentDetails.In der Ansicht kann der Benutzer entweder "Vertreter" oder "Agent" über Radio-Taste, So basierend auf der Benutzer-Auswahl, entweder "RepId" oder "AgentId" wird auf der Dropdownliste.I binden möchte die ausgewählte "Id" (VARCHAR) als Parameter in der Stored Procedure übergeben.Bindung von Tabelle basierend auf Radiobutton ausgewählten Wert

<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

Sind Sie wollen auf den Wert des ausgewählten Optionsfelds die Optionen in der Dropdownlist-Basis ändern? –

+0

Ja. Wenn der Benutzer wie im Bild "Agent" auswählt, werden die Agenten-IDs aus der Tabelle "tb_AgentDetails" gebunden. Der Javascipt, den ich für die Anzeige des Emp - Namens geschrieben habe, Bezeichnung in der Textbox basiert auf Auswahl von dropdownlist – Hari

+0

Dann müssen Sie das '.change()' Ereignis der Radioknöpfe behandeln und Ajax verwenden, um eine Steuervorrichtemethode zu rufen (den Wert der übergebend ausgewählte Schaltfläche), die die Daten zum Erstellen der Optionen zurückgibt. –

Antwort

0

Durch die gegebenen Richtlinien von Stepen Muecke und andere, die ich habe diese Aufgabe. Ich gebe den Code, so dass es für andere als zukünftige Referenz helfen wird. Willkommen Wenn jemand einfach dies kann.

 <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> 

REGLER:

 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); 
    } 
Verwandte Themen