JQuery日期选择器没有在asp.net webform中设置隐藏字段值

时间:2012-10-29 20:41:46

标签: jquery asp.net jquery-ui hidden-field

在一个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

1 个答案:

答案 0 :(得分:0)

您发布的input个标记没有name,因此不会提交任何表单数据