簡體   English   中英

根據單選按鈕選擇值從表進行綁定

[英]Binding from table based on radio button selected value

我是MVC的新手。 我有2個表,即tb_RepDetails和tb_AgentDetails。在視圖中,用戶可以通過單選按鈕選擇“代表”或“代理”,因此,根據用戶選擇,“ 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>

在此處輸入圖片說明

根據Stepen 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>

控制器:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM