Member 11403304 Ответов: 1

Как я могу получить casenumberstextbox заполняется при нажатии на кнопку getcasesbutton это?


Мне нужна помощь от общества. У меня есть CaseNumbersTextBox, который я хочу заполнить номером case/s при нажатии кнопки GetCasesButton.

Код, который у меня есть, взят из другого настольного приложения windows. Мое приложение-это веб-приложение.

Старый код использует ComboboxItem из RequestorComboBox. Вот что происходит в старом приложении. Пользователь выбирает имя из RequestorComboBox, а затем вводит номер судебного дела/ов в CaseNumbersTextBox. Затем пользователь нажимает на кнопку GetCasesButton. Приложение ищет номер дела, введенный из таблицы базы данных. Если номер обращения не найден, пользователю отображается всплывающее сообщение об ошибке.

Мне нужно изменить RequestorComboBox, чтобы использовать RequestorDropDownList.

Как мне это сделать?

Что я уже пробовал:

Вот код, в который мне нужно внести изменения, чтобы вместо RequestorComboBox я использовал RequestorDropDownList.
private async void GetCasesButton_Click(object sender, EventArgs e)
{
   #region Required Field Validation
    if (CaseNumbersTextBox.Text.Length < 1)
    {
        MessageBox.Show("Casenumber textbox cannot be empty.", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }
    ComboboxItem requestorItem = new ComboboxItem();
    requestorItem = (ComboboxItem)RequestorComboBox.SelectedItem;

    ComboboxItem reasonItem = new ComboboxItem();
    reasonItem = (ComboboxItem)ReasonComboBox.SelectedItem;

    if (requestorItem.Value < 1)
    {
        MessageBox.Show("Please select a Requestor.", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }

    if (reasonItem.Value < 1)
    {
        MessageBox.Show("Please select a Reason.", "Search Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }
    #endregion

    #region Parse case number entries
    string userEnteredCaseNumbers = CaseNumbersTextBox.Text;

    userEnteredCaseNumbers = userEnteredCaseNumbers.Replace("\r", ",");
    userEnteredCaseNumbers = userEnteredCaseNumbers.Replace("\n", ",");
    while (userEnteredCaseNumbers.Contains(",,"))
        userEnteredCaseNumbers = userEnteredCaseNumbers.Replace(",,", ",");

    List<string> userEnteredCaseNumberList = new List<string>();
    userEnteredCaseNumberList = userEnteredCaseNumbers.Split(',').Where(x => x.Length > 0).ToList();
    userEnteredCaseNumberList = userEnteredCaseNumberList.Select(s => s.Trim()).ToList();
    #endregion

    try
    {
        #region Get Batch Number
        int newBatchNumber = await CandidateCaseController.GetNextBatchNumber();
        #endregion

        #region Insert entered case numbers in database
        foreach (string caseNumber in userEnteredCaseNumberList)
        {
            EditCandidateCaseModel newCandidate = new EditCandidateCaseModel();
            newCandidate.CaseNbr = caseNumber;
            newCandidate.RequestorInfoID = requestorItem.Value;
            newCandidate.ReasonID = reasonItem.Value;
            newCandidate.BatchNumber = newBatchNumber;
            newCandidate.EntryStaffUserName = this._loggedInUserName;

            await CandidateCaseController.PostCandidate(newCandidate);
        }
        #endregion

        #region Get everything in Candidate table now that the new search has been entered
        List<GetCandidateCaseModel> candidateList = await CandidateCaseController.GetAllCandidates();
        candidateList = candidateList.Where(x => x.BatchNumber == newBatchNumber).ToList();

        string candidateCasesString = string.Empty;
        Regex rgxDash = new Regex("[^a-zA-Z0-9 ,]");

        candidateCasesString = string.Join(",", candidateList.Select(p => p.CaseNbr.ToString()));
        candidateCasesString = rgxDash.Replace(candidateCasesString, "").ToString();
        #endregion

        #region Get info on cases
        //candidateCasesString
        List<string> smallEnoughStrings = new List<string>();

        while (candidateCasesString.Length > 0)
        {
            int sendLength = 200;
            bool isLastString = false;

            if (candidateCasesString.Length < sendLength)
            {
                sendLength = candidateCasesString.Length;
                isLastString = true;
            }

            string smallChunk = candidateCasesString.Substring(0, sendLength);

            if (!isLastString)
            {
                int lastComma = smallChunk.LastIndexOf(',');
                smallChunk = smallChunk.Substring(0, lastComma);

                candidateCasesString = candidateCasesString.Remove(0, lastComma);
                if (candidateCasesString[0] == ',')
                    candidateCasesString = candidateCasesString.Remove(0, 1);
            }
            else
                candidateCasesString = candidateCasesString.Remove(0, sendLength);

            smallEnoughStrings.Add(smallChunk);
        }

        List<AcceptCaseNumbersModel> mncisDetailList = new List<AcceptCaseNumbersModel>();
        List<AcceptCaseNumbersModel> smallEnoughMncisDetailList = new List<AcceptCaseNumbersModel>();
        foreach (string smallEnoughString in smallEnoughStrings)
        {
            smallEnoughMncisDetailList = await FTACaseReset.Controllers.JusticeController.GetAllAcceptCaseNumbers(smallEnoughString);
            mncisDetailList.AddRange(smallEnoughMncisDetailList);
        }
        #endregion

        #region Parse data from MNCIS and add it to Candidate table
        //use candidateList to pull records out of mncisDetailList then update CandidateCase table
        foreach (GetCandidateCaseModel candidateCase in candidateList)
        {
            string caseNbrWODash = rgxDash.Replace(candidateCase.CaseNbr, "").ToString();
            AcceptCaseNumbersModel mncisDetail = mncisDetailList.Where(x => x.CaseNbrSrch.ToLower() == caseNbrWODash.ToLower()).FirstOrDefault();

            if (mncisDetail != null)
            {
                //if it found a record then edit Candidate details with case data
                candidateCase.FirstPenalty = mncisDetail.FirstPenaltyFlag == 1 ? true : false;
                candidateCase.SecondPenalty = mncisDetail.SecondPenaltyFlag == 1 ? true : false;

                if (candidateCase.CaseNbr.ToLower().Contains("vb") == false)
                    candidateCase.RejectionReason = await FTACaseReset.Controllers.RejectionController.GetRejectionByDescription(Enumerations.Rejections.No_Records_To_Reset.ToString().Replace("_", " "));
                else if (candidateCase.FirstPenalty == false && candidateCase.SecondPenalty == false)
                    candidateCase.RejectionReason = await FTACaseReset.Controllers.RejectionController.GetRejectionByDescription(Enumerations.Rejections.No_Records_To_Reset.ToString().Replace("_", " "));

                if (candidateCase.RejectionReason == null)
                    candidateCase.RejectionReason = await FTACaseReset.Controllers.RejectionController.GetRejectionByDescription(Enumerations.Rejections.Valid.ToString());
                candidateCase.Title = mncisDetail.Style;

                await FTACaseReset.Controllers.CandidateCaseController.PutCandidate(candidateCase);
            }
            else
            {
                //if it didn't find a record then change the rejection code on the Candidate
                candidateCase.RejectionReason = await FTACaseReset.Controllers.RejectionController.GetRejectionByDescription(Enumerations.Rejections.Invalid_Case_Number.ToString().Replace("_", " "));
                await FTACaseReset.Controllers.CandidateCaseController.PutCandidate(candidateCase);
            }
        }
        #endregion

        this.ClearForm();

        #region Populate Results
        ValidTabPage.Controls.Clear();
        InvalidTabPage.Controls.Clear();
        DiscardedTabPage.Controls.Clear();

        ValidTabPage.Text = "Valid Cases";
        InvalidTabPage.Text = "Invalid Cases";
        DiscardedTabPage.Text = "Discarded Cases";

        #region Repopulate Batch ComboBox
        this.PopulateBatchComboBox();
        #endregion

        List<GetCandidateCaseModel> thisBatchCasesList = new List<GetCandidateCaseModel>();
        thisBatchCasesList = await Controllers.CandidateCaseController.GetCandidateByBatchID(newBatchNumber);

        if (thisBatchCasesList.Count > 0)
            this.EmailButton.Enabled = true;
        else
        {
            this.EmailButton.Enabled = false;
            return;
        }

        this.PopulateTabs(thisBatchCasesList, true);

        this.GetCasesPanel.Visible = false;
        this.UpdateExistingPanel.Visible = true;

        ComboboxItem batchItem = new ComboboxItem(thisBatchCasesList[0].BatchNumber);
        SelectBatch(batchItem);

        ComboboxItem requestorUpdateItem = new ComboboxItem(thisBatchCasesList[0].RequestorInfo);
        SelectRequestorUpdate(requestorUpdateItem);

        ComboboxItem reasonUpdateItem = new ComboboxItem(thisBatchCasesList[0].Reason);
        SelectReasonUpdate(reasonUpdateItem);

        #endregion

    }
    catch (Exception ex)
    {
        string errorMsg = string.Format("An error has occured in {0}. \nException:\n{1}", "GetCasesButton_Click()", ex.Message);
        ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + errorMsg + "');", true);
    }
}

Richard MacCutchan

Вам нужен полный редизайн, так как выпадающий список будет отображаться на веб-странице, а не в коде сервера.

Member 11403304

Привет, Ричард. Я действительно не понимаю, что вы подразумеваете под полным редизайном. Не могли бы вы объяснить почему? Я новичок в веб-разработке.

Christian Graus

Переход с рабочего стола на веб-сайт-это полная переписка. Это не намного лучше, чем получить спецификацию и написать веб-сайт. Веб работает совершенно по-другому. Если вы этого не знаете, вам не следует этого делать.

Вы должны пометить свой вопрос с помощью технологий, которые вы используете. ASP.NET это ужасно и устарело на десятилетие. Некоторые люди все еще используют Microsoft ASP.NET в MVC, но каких-либо серьезных веб-разработчиков на сегодняшний день включает в себя библиотеки JavaScript, такие как угловые или реагировать ИМО

1 Ответов

Рейтинг:
0

Christian Graus

Переход с рабочего стола на веб-сайт-это полная переписка. Это не намного лучше, чем получить спецификацию и написать веб-сайт. Веб работает совершенно по-другому. Если вы этого не знаете, вам не следует этого делать.

Вы должны пометить свой вопрос с помощью технологий, которые вы используете. ASP.NET это ужасно и устарело на десятилетие. Некоторые люди все еще используют Microsoft ASP.NET в MVC, но каких-либо серьезных веб-разработчиков на сегодняшний день включает в себя библиотеки JavaScript, такие как угловые или реагировать ИМО