Я использую VSTA C # в форме infopath 2010, в которой с помощью каскадных раскрывающихся списков (Название курса и Детали курса) отображается информация.
Таким образом, когда пользователь выбирает раскрывающийся список «Название курса», сведения о курсе заполняются сведениями о категориях StartTime, EndTime, Location и Development из списка Sharepoint 2010.
Теперь у меня проблема в том, что я хочу, чтобы пользователь только просматривал детали курса на сегодня и далее, а не просматривал детали курса в прошлом. Это код, с помощью которого я отображаю детали курса. Я попытался объявить переменную dateTime и использовать ее для сравнения со строкой, которая преобразуется в DateTime с Today, чтобы сделать ее более поздней, чем переменная DateTime, но после выбора названия курса выдает ошибку: не установлен для экземпляра объекта ". С советами по устранению неполадок: «Используйте новое ключевое слово для создания экземпляра объекта. Проверьте, чтобы определить, является ли объект нулевым, перед вызовом метода. Получите общую справку для этого исключения» *
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 { }
}
}