C# 表单在选择下拉值后填充两个字段
我有一个应用程序,我想在选择数据库中预定义的会计季度后自动填充Import From Date和Import to Date字段 还有我的数据库 我一直在研究如何填充ImportFromDate和ImportToDate 这是我在视图中的代码C# 表单在选择下拉值后填充两个字段,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我有一个应用程序,我想在选择数据库中预定义的会计季度后自动填充Import From Date和Import to Date字段 还有我的数据库 我一直在研究如何填充ImportFromDate和ImportToDate 这是我在视图中的代码 @model PagedList.IPagedList<EMSFinal.Models.ClaimsArchived> @using (Html.BeginForm("Index", "History", FormMethod.Get))
@model PagedList.IPagedList<EMSFinal.Models.ClaimsArchived>
@using (Html.BeginForm("Index", "History", FormMethod.Get))
{
<div class="ui-controlgroup form-horizontal" style="position:relative;">
<a href="/Claims/index" class="btn btn-info btn-sm"> << Current Month List</a>
Archived From Date: @Html.TextBox("fromdate", ViewBag.ArchivedFromDate as string, new { @class = "date-picker-month", id = "txtfromdate", placeholder = "Archived From Date..." })
Archived To Date: @Html.TextBox("todate", ViewBag.ArchivedToDate as string, new { @class = "date-picker-month", id = "txttodate", placeholder = "Archived To Date..." })
<input type="button" class="btn btn-success btn-sm" title="Update all current quarter displaying records to Paid." value="Paid All and Archived" onclick="location.href='@Url.Action("sp_UpdateQuarterRecordsToPaid","History")'" />
<br />
@Html.DropDownList("ddlQuarterID", ViewBag.DropdownResult as List<SelectListItem>,"--Select A Fiscal Quarter--")
Import From Date: @Html.TextBox("importfromdate", ViewBag.ImportFromDate as string, new { @class = "date-picker-month", id = "txtimportfromdate", placeholder = "Import From Date..." })
Import To Date: @Html.TextBox("importtodate", ViewBag.ImportToDate as string, new { @class = "date-picker-month", id = "txtimporttodate", placeholder = "Import To Date..." })
Find : @Html.TextBox("searchString", ViewBag.CurrentFilter as string, new { @class = "form-search", id = "txtsearchString", placeholder = "Search..." })
<input type="submit" class="btn btn-primary btn-sm" value="Search" />
<input type="button" class="btn btn-success btn-sm" title="Export records to excel." value="Export Excel" onclick="location.href='@Url.Action("ExportFilteredHistorydDataToExcel", "History")'" />
<input type="button" class="btn btn-success btn-sm" title="Reset" value="Reset" onclick="location.href='@Url.Action("resetsearch", "History")'" />
</div>
}
这是我在ClaimsArchived.cs中的代码
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using System;
using System.Collections.Generic;
namespace EMSFinal.Models
{
public partial class ClaimsArchived
{
public int Claim_ID { get; set; }
public String Provider
{
get
{
if (Provider_Group == 73)
{
return "CEP";
}
else if (Provider_Group == 72)
{
return "CASE";
}
else
{
return "???";
}
}
}
[Display(Name = "Provider Num")]
public Nullable<int> Provider_Group { get; set; }
public string Facility { get; set; }
public string Physician { get; set; }
[Display(Name = "Last")]
public string Patient_Last { get; set; }
[Display(Name = "First")]
public string Patient_First { get; set; }
[Display(Name = "DOB")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Patient_DOB { get; set; }
public int Age
{
get
{
//DateTime date = DateTime.Today;
DateTime date = Convert.ToDateTime(admit_date);
DateTime birthday = Convert.ToDateTime(Patient_DOB);
int tempage = date.Year - birthday.Year;
//int tempage = DateTime.Compare(date, birthday);
return tempage;
}
}
public string Funding_Type
{
get
{
//DateTime date = DateTime.Today;
DateTime birthday = Convert.ToDateTime(Patient_DOB);
DateTime date = Convert.ToDateTime(admit_date);
int compareAge = date.Year - birthday.Year;
//int compareAge = DateTime.Compare(date, birthday);
if (compareAge > 20)
{
return "MADDY";
}
else
{
return "RICHIE";
}
}
}
[Display(Name = "Gender")]
public string Patient_Gender { get; set; }
/// <summary>
/// temp remove that from the output and export -- SSNs are sensitive information so that's why disabled in this case
/// </summary>
[Display(Name = "SSN")]
[DisplayFormat(ApplyFormatInEditMode = false, DataFormatString = "{0:###-##-####}")]
public Nullable<int> Patient_SSN { get; set; }
[Display(Name = "Zip")]
public string Patient_Zip { get; set; }
public string Diagnosis { get; set; }
[Display(Name = "Total Charges")]
public Nullable<decimal> Total_Charges { get; set; }
[Display(Name = "EMS Rate")]
public Nullable<decimal> Total_EMS { get; set; }
public bool Paid { get; set; }
//public bool Paid { get; set; }
[Display(Name = "Paid Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> Paid_date { get; set; }
[Display(Name = "Unique ID")]
public Nullable<int> Unique_ID { get; set; }
[Display(Name = "Import Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> ImportDate { get; set; }
[Display(Name = "Arh Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> ArchiveDate { get; set; }
[Display(Name = "Archived")]
public bool ArchiveYesNo { get; set; }
[Display(Name = "Admit Date")]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public Nullable<System.DateTime> admit_date { get; set; }
}
}
这是我在控制器中的代码
ViewBag.CurrentFilter = searchString;
ViewBag.ArchivedFromDate = fromdate;
ViewBag.ArchivedToDate = todate;
//var varquarterlist = db.QuarterName.OrderBy(b => b.QuarterId).Distinct().ToList();
//getting data for dropdown list
List<SelectListItem> objResult = new List<SelectListItem>();
var varquarterlist = db.QuarterName.Select(x => x.QuarterName1).Distinct().ToList();
//select qtlist;
foreach (var item in varquarterlist)
{
SelectListItem temp = new SelectListItem();
temp.Text = item;
temp.Value = item;
objResult.Add(temp);
}
ViewBag.DropdownResult = objResult;
下面是我的查看页面语法
@Html.DropDownList("ddlQuarterName",(SelectList)ViewData ["viewdataQuarterName"],"-Select A Fiscal Quarter-",new { onchange="Action(this.value);"})
Import From Date: @Html.TextBox("importfromdate", ViewBag.ImportFromDate as string, new { @class = "date-picker-month", id = "txtimportfromdate", placeholder = "Import From Date..." })
Import To Date: @Html.TextBox("importtodate", ViewBag.ImportToDate as string, new { @class = "date-picker-month", id = "txtimporttodate", placeholder = "Import To Date..." })
Find : @Html.TextBox("searchString", ViewBag.CurrentFilter as string, new { @class = "form-search", id = "txtsearchString", placeholder = "Search..." })
<script type="text/javascript">
function ToJavaScriptDate(value) {
var pattern = /Date\(([^)]+)\)/;
var results = pattern.exec(value);
var dt = new Date(parseFloat(results[1]));
return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
function Action(QuarterID) {
$.ajax({
url: '@Url.Action("Action","History")',
type: "POST",
data: { "QuarterID": QuarterID },
"success": function (data) {
if (data != null) {
var vdata = data;
$("#txtimportfromdate").val(ToJavaScriptDate(vdata[0].QuarterStartDate));
$("#txtimporttodate").val(ToJavaScriptDate(vdata[0].QuarterEndDate));
}
}
})
}
听起来您需要使用ajax/javascript来实现这一点。您将在下拉列表中有一个onchange事件->在onchange事件中,您将使用ajax将所选值传递给服务器->创建一个新的控制器操作以接收此数据,并与数据库交互以获取需要放入表单中的数据->将json从控制器返回到用于ajax调用的.done回调->使用这个json数据用来填充任何输入的值。我在互联网上找到了一些示例代码,并打算尝试一下。谢谢佩吉!如果你有一个良好的开端,并更新你发布的代码,我将很乐意帮助你解决任何你正在努力解决的问题。我基本上复制了我在这篇文章中读到的内容!您还应该处理ajax调用的错误案例和成功案例
ViewData["viewdataQuarterName"] = new SelectList(db.QuarterName, "QuarterID", "QuarterName1");
[HttpPost]
public ActionResult Action(string QuarterID)
{
var query = from c in db.QuarterName
where c.QuarterId.ToString() == QuarterID
select c;
return Json(query);
}