我希望有人能指导我。 当我从一个组合框中选择一个句点时,我必须在几个aspx页面中使用相同的方法来计算范围日期。 例如,我在页面中有一个组合期间(当月销售额,上个月销售额,去年销售额,当前年度销售额)和另一个页面组合期间(当前周费用,当前月费用等)结果是相同的,给我一个日期范围(开始和结束日期)但不是所有组合具有相同的时期(一个具有:月,周,年和另一个:月和年)。 我该怎么做才能使它成为通用的?在Enum位标志或用户控件中思考......有人可以帮我一把吗? 谢谢!
答案 0 :(得分:0)
以下是您需要做的事情:
上周,上个月等的代码如下:
public static void GetPeriod(string selected_period, out DateTime start, out DateTime end)
{
switch (selected_period)
{
case "last year":
start = new DateTime(DateTime.Today.Year - 1, 1, 1);
end = new DateTime(DateTime.Today.Year, 1, 1);
break;
case "this year":
start = new DateTime(DateTime.Today.Year, 1, 1);
end = new DateTime(DateTime.Today.Year + 1, 1, 1).AddDays(-1);
break;
case "last month":
start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1).AddMonths(-1);
end = new DateTime(DateTime.Today.Year + 1, DateTime.Today.Month, 1).AddDays(-1);
break;
case "this month":
start = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
end = new DateTime(DateTime.Today.Year + 1, DateTime.Today.Month, 1).AddMonths(1).AddDays(-1);
break;
case "last week":
start = DateTime.Today.AddDays(-7);
while (start.DayOfWeek != DayOfWeek.Sunday)
start = start.AddDays(-1);
end = start.AddDays(6);
break;
case "this week":
start = DateTime.Today;
while (start.DayOfWeek != DayOfWeek.Sunday)
start = start.AddDays(-1);
end = start.AddDays(6);
break;
}
}
然后,您只需将开头和结尾转换为放入组合框选项值的字符串。
答案 1 :(得分:0)
这个答案对于评论来说有点太长了,所以我正在创建另一个答案。我没有使用过RadComboBox,但我在VS 2010中创建了自己的自定义.ascx控件。这是你需要做的:
这样,您在给定页面中所要做的就是插入自定义控件,指定自定义属性,然后在需要时调用GetStart或GetEnd。所有其他编码都在控件本身中处理。我想你也可以用RadComboBox做到这一点,虽然我从未使用它。