【发布时间】:2011-06-24 03:39:19
【问题描述】:
我在 infopath 2010 表单上使用 VSTA C#,通过使用级联下拉菜单(课程名称和课程详细信息)显示信息。
因此,当用户选择“课程标题”下拉菜单时,课程详细信息将使用 Sharepoint 2010 列表中的开始时间、结束时间、位置和开发类别信息进行填充。
现在我遇到的问题是我希望用户只查看今天及以后的课程详细信息,而不是查看过去的课程详细信息。这是我显示课程详细信息的代码。我尝试声明一个 dateTime 变量,并使用它与转换为 DateTime 和 Today 的字符串进行比较,使其晚于 DateTime 变量,但是在我选择课程标题后它给了我一个错误,它显示“对象参考未设置为对象的实例”。带有故障排除提示:“使用new关键字创建对象实例。在调用方法之前检查对象是否为null。获取此异常的一般帮助”
using (web = site.OpenWeb())
{
try
{
//SPSecurity.RunWithElevatedPrivileges(new SPSecurity.CodeToRunElevated(delegate()
//{
SPList lstDocs = web.Lists["Training Calander"] as SPList;
string sTitle = "";
string sSDate = "";
string sEDate = "";
string sLocation = "";
string SDCategory = "";
string CourseDetails = "";
//DateTime TodayDate = DateTime.Today;
//DateTime dt1 = Convert.ToDateTime(sEDate);
if (lstDocs != null)
{
SortedList<string, string> lstDetails = new SortedList<string, string>();
foreach (SPListItem item in lstDocs.Items)
{
try
{
sTitle = item["Title"].ToString();
sSDate = item["StartTime"].ToString();
sEDate = item["EndTime"].ToString();
sLocation = item["Location"].ToString();
SDCategory = item["Development Category"].ToString();
}
catch { }
if (sTitle == nValue) //&& (dt >= TodayDate))
{
try
{
CourseDetails = sSDate + " - " + sEDate + " | " + sLocation + " | " + SDCategory;
lstDetails.Add(CourseDetails,CourseDetails);
}
catch { }
}
}
【问题讨论】:
标签: c# date drop-down-menu infopath