Javascript 通过jquery加载值时,下拉选择值错误
我有两个下拉列表,一年一个月。这两个下拉列表都有在页面加载期间加载到ASP.NETC中的值。年度是从7月到6月开始的会计年度。2014-2015年,我只需要展示7月份。2013-2014年的月份列表为7月至6月 当年份改变时,我在客户端使用jquery加载月份Javascript 通过jquery加载值时,下拉选择值错误,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有两个下拉列表,一年一个月。这两个下拉列表都有在页面加载期间加载到ASP.NETC中的值。年度是从7月到6月开始的会计年度。2014-2015年,我只需要展示7月份。2013-2014年的月份列表为7月至6月 当年份改变时,我在客户端使用jquery加载月份 $('#ddlMonth').empty(); $.each(data, function (index2, val) { $('#ddlMonth').append($('<
$('#ddlMonth').empty();
$.each(data, function (index2, val) {
$('#ddlMonth').append($('<option></option>').val(val.Key).html(val.Value));
});
如果我使用jquery$ddlmount.val访问所选值,它将显示correct。但是,如果我从ASP.Net C ddlMonth.SelectedValue中选择该值,则会给出错误的值/初始默认值。
这是我的c代码
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ddlFiscalYear.Items.Add(new ListItem(fiscalYearStart.ToString() + "-" + (fiscalYearStart + 1).ToString(), fiscalYearStart.ToString()));
ddlFiscalYear.SelectedValue = fiscalYearStart.ToString();
var months = GetMonthsForFiscalYear(fiscalYearStart);
foreach (DateTime month in months)
{
if (month < DateTime.Now)
{
ddlMonth.Items.Add(new ListItem(month.ToString("MMMM"), month.Month.ToString()));
}
}
string defaultMonth = DateTime.Today.Month.ToString();
ddlMonth.SelectedValue = defaultMonth;
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
Month = Int32.Parse(ddlMonth.SelectedValue);
}
我无法找出这里的错误是什么…我认为您最好的选择是使用客户端隐藏字段来存储下拉列表中选定的项目。客户端数据和服务器端数据之间存在断开连接 选择新月份时,使用jQuery填充此字段
<input id="hdnSelectedMonth" type="hidden" runat="server">
使用jquery更改服务器端控件的内容是一个非常糟糕的主意。服务器端控件中的数据也存储在ViewState中,jquery无法更新它,因此当服务器试图读取输入并理解它时,您将遇到重大问题 我建议您在这个月使用一个普通的HTML控件no runat=server,并在服务器端阅读它,比如
var month = Request["Month"];
我不知道这里出了什么错。没有你的asp.net代码,我们也不能。显示您的页面负载,并显示您访问DDLMount的位置。SelectedValue。已添加asp.netcode@rkatta分享你的.aspx代码,它可能会有帮助。。。!!是的,我下一个想法是。谢谢谢谢你,瑞克。我把它标为答案。但我仍在寻找是否有人能帮助我理解造成这种情况的原因。可能是我缺少一些基础知识,我想知道。谢谢!我会调查的。
var month = Request["Month"];