javascript - 基于从asp.net mvc中的db绑定的下拉列表选择自动填充文本框
问题描述
这是视图部分:
在此视图部分中,从数据库中检索产品名称下拉列表,我尝试做的是在选择产品名称后,必须在价格文本框中填充价格。产品名称、价格和其他列已经存储在 db 中。
<div class="form-group">
<div class="row">
<label class="col-sm-8 control-label no-padding-right">Product Name</label>
</div>
<div class="row">
<div class="col-sm-8">
@Html.DropDownList("Product_Name", (SelectList)ViewBag.Values, "Please select", new { @id = "populate", @class = "SelectCtrlGHN", onchange = "return get_sbu(this)" })
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<label class="col-sm-8 control-label no-padding-right">Price</label>
</div>
<div class="row">
<div class="col-sm-8">
<input type="text" name="Price" class="col-xl-4 col-sm-8" id="pric" />
</div>
</div>
</div>
检索价格的脚本:
在这里,我编写了脚本来根据视图中相应的下拉列表选择来检索价格。
<script type="text/javascript">
$(document).ready(function() {
$('#populate').change(function() {
var str = this.options[this.selectedIndex].value;
var st = null;
$.ajax('@Url.Action("GetProductData", "Userrolereq")', {
type: 'POST',
dataType: 'json',
data: { 'productID': str },{'amt':st},
success: function(data, status, jqXHR) {
if ("success" === status) {
document.getElementById('#populate').value = data.productID;
document.getElementById('#pric').value = data.amt;
}
if ("productCode" != null) {
document.getElementById('#pric').value = data.amt;
}else {
alert('This Product ID is not valid. Try again!');
}
}
});
});
});
</script>
这是控制器:
从数据库中的 DM_Userreq 表中,我试图从下拉选择中检索价格。
public ActionResult GetProductData(string productID)
{
string sa = "";
SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString);
StringBuilder sb = new StringBuilder();
using (cn)
{
cn.Open();
string que = string.Format("Select Price From DM_Userreq Where Product_Name = '{0}'", productID);
SqlCommand cm = new SqlCommand(que, cn);
SqlDataReader rd = cm.ExecuteReader();
while (rd.Read())
{
sb.Append(rd["Price"].ToString() + "</br>");
return Json(new { success = true, productCode = sb.Append(rd["Price"].ToString() + "</br>") });
}
sa = sb.ToString();
cn.Close();
}
return Json(new { success = false });
}
解决方案
推荐阅读
- c# - 如何使用团队应用程序打开本地应用程序(例如自助服务门户)。我正在使用 bot 框架 v4 进行开发,它是一个聊天机器人项目
- php - CodeIgniter 登录控制器表单身份验证不起作用
- amazon-web-services - AWS API Gateway 从 POSTMAN 工作,但不是从 AWS Lambda 函数
- c - 用循环填充列表的问题 - C 语言
- c++ - 如何向 task.json 添加多个包含路径?
- c - C程序没有输出
- openlayers - Openlayers - 从特定投影转换多边形,如 EPSG:28992
- javascript - Discord.js:如果用户输入特定字符串,如何将用户从任何语音通道移动到某个语音通道?
- html - Expand/Collapse sidebar by pressing it's border
- sql-server - SSMS 备份集列表 - 这里应该显示什么?