Входная строка была в неправильном формате и удаляет выпадающие элементы из выпадающего - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть требование, при котором я должен удалить выпадающие элементы в зависимости от даты начала и окончания. Я достаточно погуглил и попробовал много простых способов, например, я мог удалить выбранный элемент в выпадающем списке. Проблема здесь в том, что выдает ошибку, что входная строка была не в правильном формате и как отследить и удалить элемент из выпадающего списка. Обратите внимание, что раскрывающееся значение начинается с привязки из списка календарей и отображается в настраиваемом списке как раскрывающийся список (надеюсь, это понятно).

Ниже мой код:

protected void BtnRegister_Click(object sender, EventArgs e)
{
    try
    {
        SPSite oSPSiteCollection = SPContext.Current.Site;
        SPWeb oSPWeb = SPContext.Current.Web;
        SPList oSPList = oSPWeb.Lists["Registered"];
        SPListItemCollection oSPListItemCollection = oSPList.Items;
        SPListItem oSPListItem = oSPListItemCollection.Add();
        DataTable oDataTable = new DataTable();
        oSPListItem["Employee Name"] = oSPWeb.CurrentUser.Email.ToString();
        string[] UsersSeperated = peopleEditorManager.CommaSeparatedAccounts.Split(',');
        SPFieldUserValueCollection UserCollection = new SPFieldUserValueCollection();
        SPFieldUserValue UserName = new SPFieldUserValue();
        foreach (string UserSeperated in UsersSeperated)
        {
            oSPWeb.EnsureUser(UserSeperated);
            SPUser User = oSPWeb.SiteUsers[UserSeperated];
            UserName = new SPFieldUserValue(oSPWeb, User.ID, User.LoginName);
            UserCollection.Add(UserName);
        }
        oSPListItem["peopleEditorManager"] = UserCollection;
        oSPListItem["Practice Name"] = TxtPracticeName.Text;
        oSPListItem["Course Name"] = ddlDrop.SelectedItem;
        oSPListItem["Prerequisite"] = TxtPrerequisite1.Text;
        oSPListItem["Beg Date"] = TxtStartDate.Text;
        oSPListItem["Finish Date"] = TxtEndDate.Text;
        string registeredCourse = oSPListItem["Course Name"].ToString();
        SPList oSPListCourse = oSPWeb.Lists["Scheduled Courses"];
        SPListItemCollection oSPListItemCollectionCourse = oSPListCourse.Items;
        foreach (SPListItem oSPListItemCourse in oSPListItemCollectionCourse)
        {
            string begginingDate = oSPListItemCourse["Start Date"].ToString();
            string finishDate = oSPListItemCourse["End Date"].ToString();
            //input string not in correct format
            if (( Convert.ToInt32(begginingDate) >= Convert.ToInt32(TxtStartDate.Text) ) 
                || (Convert.ToInt32(finishDate) <= Convert.ToInt32(TxtEndDate.Text))) 
            {
                //how to remove the item from drop down if their date is greater than StartDate and less than EndDate
                ddlDrop.Items.Remove(ddlDrop.SelectedItem);
            }
        }  
        oSPListItem.Update();
        LblMessage.Text = "Registeres";
        String fromID = oSPWeb.CurrentUser.Email.ToString();
        String mailTo = UserName.User.Email.ToString();
        string titleName = ddlDrop.SelectedItem.ToString();
        SendEmail_WU(fromID, mailTo, titleName);
    }
    catch (Exception ex)
    {
        LblMessage.Text = ex.Message;
    }
}

Пожалуйста, помогите. Спасибо.

1 Ответ

0 голосов
/ 29 февраля 2012

На основании вашего комментария:

как удалить элемент из выпадающего списка, если его дата больше, чем StartDate и меньше, чем EndDate

звучит так, как будто вы должныиспользовать Convert.ToDateTime или DateTime.Parse вместо Convert.ToInt32.

Кроме того, ваш комментарий говорит "и", но || в вашем коде говорит "или".А левую и правую стороны вашего условия нужно перевернуть.

Следующий код должен реализовывать то, что выражает ваш комментарий:

//input string not in correct format
if ((Convert.ToDateTime(TxtStartDate.Text) > Convert.ToDateTime(begginingDate)) 
    && (Convert.ToDateTime(TxtEndDate.Text) < Convert.ToDateTime(finishDate))) 
{
    // how to remove the item from drop down if their date is 
    // greater than StartDate and less than EndDate
    ddlDrop.Items.Remove(ddlDrop.SelectedItem);
}

Если это не то, что вы хотите, то вынеобходимо вернуться к вашему требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...