좋습니다. 저는 C # 프로그램을 asp 프로그램에 적용하고 있으며 목록 상자를 포함하는 기본 양식과 목록 상자에 새 정보를 추가하는 다른 양식이 있습니다. 두 번째 양식을 작성하고 값을 유지할 수 Application["getData"];
있지만 다른 페이지로 이동하면 다음 코드를 실행해야합니다.
public void AddGig()
{
AddGigForm frm = new AddGigForm();
if (Application["getData"] != null)
{
Application["saveData"] = Application["getData"];
gigList.addGig(frm.GetData());
UpdateListbox();
}
두 번째 양식 gigList.addGig
의 방법으로 돌아 가면서 문제가 발생 GetData()
합니다. 다른 무엇을 사용해야할지 모르겠습니다.
GetData 메서드 :
public GigOpportunity GetData()
{
Application["GetData"] = new GigOpportunity
(txtId.Text, gigDate.SelectedDate, txtVenue.Text, txtGenre.Text,
Convert.ToDouble(txtCost.Text), Convert.ToInt32(txtCapacity.Text), chkHeadliner.Checked, txtMainAct.Text, chkEngineer.Checked);
return new GigOpportunity(txtId.Text, gigDate.SelectedDate, txtVenue.Text, txtGenre.Text, Convert.ToDouble(txtCost.Text), Convert.ToInt32(txtCapacity.Text), chkHeadliner.Checked, txtMainAct.Text, chkEngineer.Checked);
}
addGig 메서드 :
public void addGig(GigOpportunity gigOpportunity)
{
//Make sure a gig with this id does not already exist
foreach (GigOpportunity g in gigList)
{
if (g.GigId == gigOpportunity.GigId)
{
throw new DuplicateIdException();
}
}
gigList.Add(gigOpportunity);
}
이제 당신의 문제를 이해합니다. 당신은 창문 형태로 생각하지 않습니다. 다른 양식에서 해당 메서드를 선언했습니다. 새 Form 개체를 할당하여 호출하면 페이지를 변경 한 후 삭제되었으므로 내부 값을 가져 오지 않습니다.
따라서 귀하의 경우 :
if (Application["getData"] != null)
{
Application["saveData"] = Application["getData"];
gigList.addGig((GigOpportunity)Application["getData"]);
UpdateListbox();
}
하지만 Session
객체 대신 객체 를 사용하는 것이 좋습니다 Application
. 여기에서 자세한 내용을 읽을 수 있습니다.
따라서 다음과 같이해야합니다.
if (Session["getData"] != null)
{
Session["saveData"] = Session["getData"];
gigList.addGig((GigOpportunity)Session["getData"]);
UpdateListbox();
}
두 번째 양식 개체를 만들 필요가 없으며 세션을 할당하기 위해 선언 된 양식에서 AddGigForm
메서드를 호출해야합니다 GetData
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다