[英]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.