我有一个搜索按钮,按下时会显示Calendar
控件。 Calendar
控件的原因是我有一个数据列表连接到sql数据源并返回Date
之类的值。
我希望能够选择仅显示该特定日期的记录的日期。
protected void btnSearch_Click(object sender, EventArgs e)
{
this.Calendar1.Visible = true;
}
<asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calendar1_SelectionChanged" Visible="False"></asp:Calendar>
我怎样才能做到这一点?
答案 0 :(得分:0)
试试这个
string queryString = "SELECT * FROM yourTableName WHERE DateColumn = '" + Calendar1.Value + '";
这是您的查询。现在执行此查询。
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1])); // here reader[0] means first column in Table.
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
答案 1 :(得分:0)
您可以在ControlParameter
上使用SqlDataSource
。
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.controlparameter.ASPX
默认情况下,属性名称将使用Calendar.SelectedDate
,但如果您愿意,可以明确设置。
您的代码应类似于以下内容:
<asp:sqldatasource
id="SqlDataSource1"
runat="server"
connectionstring="<%$ ConnectionStrings:MyNorthwind%>"
selectcommand="SELECT Dates FROM Dates WHERE Date = @Date">
<selectparameters>
<asp:controlparameter name="Date" controlid="Calendar1" propertyname="SelectedDate"/>
</selectparameters>
</asp:sqldatasource>
答案 2 :(得分:0)
您需要什么时候帮忙?
如果您对如何获取该特定日期的记录感到困惑,只需将所选日期从日历控件作为parameter
传递给SQL Stored Procedure
并执行它以存储返回的数据进入DataTable
。现在,您可以根据需要在代码隐藏中使用DataTable
。
如果您遇到日历控制问题,可以尝试使用Ajax CalenderExtender
,这非常容易使用。
<asp:CalendarExtender ID="CalenderDate_CalendarExtender" runat="server" PopupButtonID="btnSearch" Format="yyyy-MM-dd">
</asp:CalendarExtender>
现在点击btnSearch
按钮将打开日历。您可以从代码隐藏中访问所选日期,如下所示
DateTime date = CalenderDate_CalendarExtender.SelectedDate;
您需要添加以下内容才能使日历扩展程序正常工作
<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
这个
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>