2012-07-08 71 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

相關問題