2012-07-08 66 views
0

我正在使用jQuery DatePicker控件。该控件正常显示,但我无法在页面后面的代码中获取选定的值。我试图捕获用户选择的值使用:DateTime StartDt = Convert.ToDateTime(Request.Form [“datepicker”]);用户有几个控件可供选择,然后点击提交。jquery datepicker无法捕获后面代码中SUBMIT控件的值

提交后,当我检查StartDt的该值是:01/01/0001 0点0分

ASPX页面:

<%@ Page Title="Fox Cities Restaurant Guide-Food Events" Language="C#" MasterPageFile="~/main_master.Master" AutoEventWireup="true" CodeBehind="Events.aspx.cs" Inherits="FCGuide.Events" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 
    <link href="Styles/jquery-ui-1.8.21.custom.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#datepicker").datepicker(); 
    }); 
    </script> 
    <style type="text/css"> 
     #datepicker 
     { 
      width: 110px; 
      height: 19px; 
     } 
    </style> 
</asp:Content> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <div id="defaultEvent"> 
     <div id="EventNav"> 
      <div id="EventType" class="EventNavDivs"> 
      <span class="EventTitle">Event Type</span> <br /> 
       <asp:DropDownList ID="ddlEventType" runat="server"> 
        <asp:ListItem>Any Event</asp:ListItem> 
        <asp:ListItem>Art Shows</asp:ListItem> 
        <asp:ListItem>Farmers' Market</asp:ListItem> 
        <asp:ListItem>Festival</asp:ListItem> 
        <asp:ListItem>Restaurant Opening</asp:ListItem> 
       </asp:DropDownList> 
      </div> 
      <div id="EventDate" class="EventNavDivs"> 
       <span class="EventTitle">Event Date</span> <br /> 
       <%--<asp:TextBox ID="datepicker" runat="server"></asp:TextBox>--%> 
       <input id="datepicker" type="text" size="50px" maxlength="12" /> 
      </div> 
      <div id="EventLocation" class="EventNavDivs"> 
       <span class="EventTitle">Location</span> <br /> 
       <asp:DropDownList ID="ddlEventCity" runat="server"> 
       </asp:DropDownList> 
      </div> 
      <div id="EventBtn" class="EventNavBtn"> 
       <br /><asp:Button ID="btnFindEvents" runat="server" Text="Submit" 
        onclick="btnFindEvents_Click" /> 
      </div> 
     </div> 
     </div> 
    </div> 
</asp:Content> 

代码页背后:

protected void btnFindEvents_Click(object sender, EventArgs e) 
{ 
    string EventType = ddlEventType.SelectedValue; 
    DateTime StartDt = Convert.ToDateTime(Request.Form["datepicker"]); 
    string City = ddlEventCity.SelectedValue; 

     BLgetEvents obj = new BLgetEvents(); 
     var EventList = obj.getAllEvents(StartDt); 

     ListEvents.DataSource = EventList; 
     ListEvents.DataBind(); 
    } 
+1

检查生成的HTML的输入是否有一个'NAME = “日期选择器”'属性。 – Styxxy 2012-07-08 20:30:59

回答

2

将您的.aspx代码更改为:

<input id="datepicker" type="text" size="50px" maxlength="12" name="DatePickername" /> 

然后在您的代码隐藏,这样做:

string dt = Request.Form["DatePickername"]; 
+0

谢谢 - 它工作!你能告诉我为什么名称参数是必需的吗?我在网上找到的例子使用了ID参数..... ???? – Susan 2012-07-08 21:01:37

+0

可能是因为您使用的是html文本框而不是ASP.NET文本框。我看到你注释掉了ASP.NET文本框,但你也可以使用它来获取所选日期的值。使用这个:string dt = Request.Form [TextBox1.UniqueID]; asp.net文本框会使用ID参数,而不是html。很高兴我能帮上忙! – Thousand 2012-07-08 21:07:01

+0

名称属性始终需要输入(特别是如果您想要发布值)。 – Styxxy 2012-07-08 21:07:16

相关问题