在一个webform中我有一个jquery datepicker绑定到ui中的文本字段,而ui又绑定到一个隐藏字段(asp隐藏字段而不是html)
<div class="dateContainer">
<span class="fbSmallLabel">Start Date</span>
<input id="txtStartDate" class="datequeryterm" type="text" value="<%= ((HiddenField)Parent.FindControl("hdnStartDate")).Value %>" />
</div>
当选择日期时,会更新hndfield,然后更新文本框中的值
$("#btnApplyFilter").click(function () {
setFilterFields();
$.modal.close();
});
function setFilterFields() {
var startDate = $("#txtStartDate").val();
var endDate = $("#txtEndDate").val();
$("#hdnStartDate").val(startDate);
$("#hdnEndDate").val(endDate);
}
使用firebug或IE开发工具我可以看到隐藏字段在DOM中更新,但是当我从webform引用隐藏字段时,我得到一个空值“”。
protected void SetSearchFilterData()
{
DateTime dt;
string StartDate = hdnStartDate.Value;
string EndDate = hdnEndDate.Value;
if (DateTime.TryParse(StartDate, out dt))
{
srchRequest.DateRangeStart = DateTime.Parse(StartDate);
}
if (DateTime.TryParse(EndDate, out dt))
{
srchRequest.DateRangeEnd = DateTime.Parse(EndDate);
}
}
该方法有点基础,因为我试图明确地看到变量赋值发生了什么。 以前我用以下方式声明开始日期和结束日期
public string StartDate
{
get { return hdnStartDate.Value; }
set { hdnStartDate.Value = value; }
}
虽然这确实检测到该字段,但该值仍然为空。
任何建议都将不胜感激
-cheers
答案 0 :(得分:0)
您发布的input
个标记没有name
,因此不会提交任何表单数据