我的下拉列表有 3个值(FlexiPA,Motor,Fire)。这些是保险类型。
我想要的是,当用户选择任何一种类型时,将显示一个表(我使用jquery来显示该表),并且只显示基于用户选择的类型的记录。
例如,如果用户选择FlexiPA类型,则仅显示带有flexitype的记录,依此类推。
我的问题是
目前,该表显示了数据库中的所有记录,并未根据用户选择进行更改。
我的观点
我的jquery--用于下拉列表(flexipa,motor,fire)
<script type="text/javascript">
$(function () {
// alert('jQuery Load.If this message box shows it means jQuery is correctly referenced and can be used on this page');
$("#InsuranceType").hide();
$("#InsuranceTypeLabel").hide();
$("#ListOfRegister").hide();
$('#ProviderType').change(function () {
var value = $('#ProviderType').val();
if (value == 1) {
$("#InsuranceType").show();
$("#InsuranceTypeLabel").show();
$('#InsuranceType').change(function () {
$("#ListOfRegister").show();
});
}
else
{
$("#InsuranceType").hide();
$("#InsuranceTypeLabel").hide();
$("#ListOfRegister").hide();
}
});
});
剃刀
@Html.Label("Please Select Insurance Type :", new { id = "InsuranceTypeLabel" })
@Html.DropDownList("InsuranceType", new List<SelectListItem> {
new SelectListItem{Text ="", Value=""},
new SelectListItem{Text ="FlexiPA", Value="1"},
new SelectListItem{Text ="Motor", Value="2"},
new SelectListItem{Text ="Fire", Value="3"}
})
<table id="ListOfRegister" border="0">
<tr>
<th>Registration ID</th>
<th>Name</th>
<th>Insurance Type</th>
</tr>
@foreach (var item in Model.registerList)
{
<tr>
<td align="center">@item.registrationId</td>
<td>@item.registerNm</td>
<td align="center">@item.insuranceType.InsuranceTypeNm</td>
</tr>
}
我的控制器
public class AdminController : Controller
{
//
// GET: /Admin/
TMXEntities db = new TMXEntities(); //ESTABLISHING CONNECTION TO DATABASE
public ActionResult Index()
{
using (var dataBase = new TMXEntities())
{
var model = new RegisterInfoPA()
{
registerList = dataBase.registers.ToList(),
insuType = dataBase.insuranceTypes.ToList()
};
return View(model);
}
}
}
谢谢。
答案 0 :(得分:2)
复制并粘贴下面的代码完全如下所示,它会起作用。我在我这边测试过,它的工作正常。
我根据您的原始代码对此进行编码,但是根据评论,ajax肯定会以专业的方式实现。
的 JS。强>
<script type="text/javascript">
$(function () {
// alert('jQuery Load.If this message box shows it means jQuery is correctly referenced and can be used on this page');
$("#InsuranceType").hide();
$("#InsuranceTypeLabel").hide();
$("#ListOfFlexiPA").hide();
$("#ListOfMotor").hide();
$("#ListOfFire").hide();
$('#ProviderType').change(function () {
var value = $('#ProviderType').val();
if (value == 1) {
$("#InsuranceType").show();
$("#InsuranceTypeLabel").show();
$('#InsuranceType').change(function () {
var type = $('#InsuranceType').val();
if(type == 1)
{
$("#ListOfFlexiPA").show();
$("#ListOfMotor").hide();
$("#ListOfFire").hide();
}
else if (type == 2)
{
$("#ListOfMotor").show();
$("#ListOfFlexiPA").hide();
$("#ListOfFire").hide();
}
else
{
$("#ListOfFire").show();
$("#ListOfFlexiPA").hide();
$("#ListOfMotor").hide();
}
});
}
else {
$("#InsuranceType").hide();
$("#InsuranceTypeLabel").hide();
$("#ListOfFlexiPA").hide();
$("#ListOfMotor").hide();
$("#ListOfFire").hide();
}
});
});
将现有表格更改为这三个不同的表格 的剃刀强>
<table id="ListOfFlexiPA" border="0">
<tr>
<th>Registration ID</th>
<th>Name</th>
<th>Insurance Type</th>
</tr>
@foreach (var item in Model.registerList)
{
if (item.insuranceType.InsuranceTypeNm.Equals("FlexiPA"))
{
<tr>
<td align="center">@item.registrationId</td>
<td>@item.registerNm</td>
<td align="center">@item.insuranceType.InsuranceTypeNm</td>
</tr>
}
}
</table>
<table id="ListOfMotor" border="0">
<tr>
<th>Registration ID</th>
<th>Name</th>
<th>Insurance Type</th>
</tr>
@foreach (var item in Model.registerList)
{
if (item.insuranceType.InsuranceTypeNm.Equals("Motor"))
{
<tr>
<td align="center">@item.registrationId</td>
<td>@item.registerNm</td>
<td align="center">@item.insuranceType.InsuranceTypeNm</td>
</tr>
}
}
</table>
<table id="ListOfFire" border="0">
<tr>
<th>Registration ID</th>
<th>Name</th>
<th>Insurance Type</th>
</tr>
@foreach (var item in Model.registerList)
{
if (item.insuranceType.InsuranceTypeNm.Equals("Fire"))
{
<tr>
<td align="center">@item.registrationId</td>
<td>@item.registerNm</td>
<td align="center">@item.insuranceType.InsuranceTypeNm</td>
</tr>
}
}
希望它有所帮助。