Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 表单在选择下拉值后填充两个字段_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 表单在选择下拉值后填充两个字段

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

我有一个应用程序,我想在选择数据库中预定义的会计季度后自动填充Import From Date和Import to Date字段

还有我的数据库

我一直在研究如何填充ImportFromDate和ImportToDate

这是我在视图中的代码

 @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> &nbsp;&nbsp;&nbsp;&nbsp;  
    Archived From Date: @Html.TextBox("fromdate", ViewBag.ArchivedFromDate as string, new { @class = "date-picker-month", id = "txtfromdate", placeholder = "Archived From Date..." })&nbsp;&nbsp;&nbsp;&nbsp; 
    Archived To Date: @Html.TextBox("todate", ViewBag.ArchivedToDate as string, new { @class = "date-picker-month", id = "txttodate", placeholder = "Archived To Date..." })&nbsp;&nbsp;&nbsp;&nbsp; 
    <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..." })&nbsp;&nbsp;&nbsp;&nbsp;
    Import To Date: @Html.TextBox("importtodate", ViewBag.ImportToDate as string, new { @class = "date-picker-month", id = "txtimporttodate", placeholder = "Import To Date..." })&nbsp;&nbsp;&nbsp;&nbsp; 
    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" />&nbsp;&nbsp;&nbsp;&nbsp;
    <input type="button" class="btn btn-success btn-sm" title="Export records to excel." value="Export Excel" onclick="location.href='@Url.Action("ExportFilteredHistorydDataToExcel", "History")'" />&nbsp;&nbsp;&nbsp;&nbsp;
    <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..." })&nbsp;&nbsp;&nbsp;&nbsp;
    Import To Date: @Html.TextBox("importtodate", ViewBag.ImportToDate as string, new { @class = "date-picker-month", id = "txtimporttodate", placeholder = "Import To Date..." })&nbsp;&nbsp;&nbsp;&nbsp;         
    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);
    }