検索フィルターを開発するために、2つのテキストボックスでAjaxToolKitCalendarExtenderコントロールを使用しようとしています。最初のテキストボックスは(開始日)用で、2番目のテキストボックスは終了日用です。(検索)ボタンをクリックすると、結果がリストビューに表示され、リストビューの最初の列にチェックボックスが追加されます。
参考までに、データベースの設計は次のとおりです。
Employee Table: Username, Name...
SuggestionsLog: ID, Title, Description, DateSubmitted, StatusID
SuggestionsStatus: ID, Status
(DateSubmittedは日時データ型フィールドです)
StartDateとEndDateは、データベースのSuggestionsLogテーブルのDateSubmitted列に基づきます。問題は、Ajax CalendarExtenderから選択された日付の形式が(2012年7月2日)であるということです。また、私は次のようなクエリを作成しました。
SELECT dbo.SafetySuggestionsLog.Title, dbo.SafetySuggestionsLog.Description, dbo.SafetySuggestionsLog.Username, dbo.SafetySuggestionsLog.DateSubmitted,
dbo.SafetySuggestionsStatus.Status
FROM dbo.SafetySuggestionsLog INNER JOIN
dbo.SafetySuggestionsStatus ON dbo.SafetySuggestionsLog.StatusID = dbo.SafetySuggestionsStatus.ID
WHERE (dbo.SafetySuggestionsLog.DateSubmitted = @startDate) AND (dbo.SafetySuggestionsLog.DateSubmitted = @finishDate)
結果をListViewに表示したいのですが、ListViewに何も表示されないので、理由がわかりません。これを手伝ってくれませんか。
ASP.NET:
<div>
<asp:Label ID="Label2" runat="server" Text="From: " />
<asp:TextBox ID="txtStartDate" runat="server" />
<asp:CalendarExtender ID="CalendarExtender1" runat="server" Enabled="True"
Format="MMMM d, yyyy" TargetControlID="txtStartDate">
</asp:CalendarExtender>
<asp:Label ID="Label3" runat="server" Text="To: " />
<asp:TextBox ID="txtEndDate" runat="server" />
<asp:CalendarExtender ID="CalendarExtender2" runat="server" Enabled="True"
Format="MMMM d, yyyy" TargetControlID="txtEndDate">
</asp:CalendarExtender>
<asp:Button ID="searchButton" runat="server" Text="Search"
onclick="searchButton_Click" />
<asp:ListView ID="FilteredSuggestions" runat="server"></asp:ListView>
</div>
コードビハインド:
protected void searchButton_Click(object sender, EventArgs e)
{
string connString = ConfigurationManager.ConnectionStrings["testConnectionString"].ConnectionString;
SqlConnection conn = new SqlConnection(connString);
string cmd = @"SELECT dbo.SafetySuggestionsLog.Title, dbo.SafetySuggestionsLog.Description, dbo.SafetySuggestionsLog.Username, dbo.SafetySuggestionsLog.DateSubmitted,
dbo.SafetySuggestionsStatus.Status
FROM dbo.SafetySuggestionsLog INNER JOIN
dbo.SafetySuggestionsStatus ON dbo.SafetySuggestionsLog.StatusID = dbo.SafetySuggestionsStatus.ID
WHERE (dbo.SafetySuggestionsLog.DateSubmitted = @startDate) AND (dbo.SafetySuggestionsLog.DateSubmitted = @finishDate)";
SqlDataAdapter sda = new SqlDataAdapter(cmd,conn);
sda.SelectCommand.Parameters.AddWithValue("@startDate", txtStartDate.Text);
sda.SelectCommand.Parameters.AddWithValue("@finishDate", txtEndDate.Text);
DataSet ds = new DataSet();
sda.Fill(ds, "table");
FilteredSuggestions.DataSource = ds.Tables["table"];
FilteredSuggestions.DataBind();
}