내 aspx.cs 페이지
public partial class tbIndexUI : System.Web.UI.UserControl
{
private int _numOfCols = 0;
private int itemsPerCol = 0;
public int numColumns
{
set
{
_numOfCols = value;
}
}
public int itemsPerColumn
{
set
{
_itemsPerCol = value;
}
}
public static void passData(int numOfCol, int itemsPerCol)
{
numColumns = numOfCol;
itemsPerColumn = itemsPerCol;
}
}
코드에 대한
코드는 클래스 라이브러리 클래스가 웹 페이지 클래스의 인스턴스를 가질 필요가 없습니다. 반대의 경우, .aspx 페이지/컨트롤에 "일반".cs 파일의 클래스 인스턴스가 있어야 여러 페이지에서 재사용 할 수 있기를 원합니다.
게시 된 코드가 작성된 방식으로 sendInformation
메서드는 tbIndexUI
컨트롤을 사용하기 위해 하드 코딩되어 있기 때문에 다른 웹 페이지와 함께 사용할 수 없습니다.
대신, sendInformation
메서드가있는 클래스 이름 (게시 된 코드에서 나타내지는 않음)이 포함 된 인스턴스를 갖고 싶습니다. 이 방법을 사용하면 클래스가 numOfCols
및 itemsPerCol
값을 보유하고 속성을 통해 웹 페이지/컨트롤에 노출 할 수 있습니다.
대신 당신이 쓸 수 : 귀하의 영문 코드에서 이제
public class TheClassThatHoldsNumOfColsAndItemsPerCol
{
public int NumOfCols { get; set; }
public int ItemsPerCol { get; set; }
// Method(s) here that set the values above
}
을, 당신은 TheClassThatHoldsNumOfColsAndItemsPerCol
의 인스턴스가 언제 당신은 Session
캐시에 해당 인스턴스를 저장하거나 ViewState
가 그래서 페이지 포스트 백에 걸쳐 지속될 수 있습니다.
마우 사이에 데이터를 유지하는 다양한 방법에 대한 다음 가이드를 읽어 보는 것이 좋습니다, 나는 당신이 보여 ViewState를 사용하여 시도 귀하의 예를 들어 있지만 값을 보유하지 않습니다. 코드를 단계별로 실행하면 값이 제대로 선언되지만 aspx.cs 페이지에 입력되는 순간 Viewstates는 null로 재설정됩니다. 어떤 생각이 일어나고 있습니까? – snapplex