나는 이것과 관련된 두 개의 다른 게시물을 보았지만 내 코드와 관련된 의문점이 있습니다. 그래서 친절하게 나와 함께 참아 라.사용자 정의 컨트롤 안에있는 드롭 다운 목록의 선택 revisioning
텍스트 보아와 드롭 다운 목록 및 사용자 정의 유효성 검사기가 거의없는 사용자 정의 컨트롤이 있습니다. 사용자 정의 컨트롤은 코드를 통해 동적으로 추가됩니다.
나는
protected void Page_Init(object sender, EventArgs e)
{
if (GetPostBackControl(this) == "btnNewRow")
{
custControlCountID++;
}
for (int i = 0; i < custControlCountID; i++)
{
RejRow customControl = (RejRow)LoadControl("~/RejRow.ascx");
customControl.ID = "rejRow" + i;
divHolder.Controls.Add(customControl);
}
}
viewstate가 모두 텍스트 상자 놓기를 사용할 수 있습니다 사용자 컨트롤 자체
protected void Page_Load(object sender, EventArgs e)
{
ddl_RRC.DataSource = dicRC_Desc;
ddl_RRC.DataTextField = "value";
ddl_RRC.DataValueField = "key";
ddl_RRC.DataBind();
txtRC.Text = Request.Form[txtRC.UniqueID]; //To retain the value of text box
}
난 후 Page_Init에 동적으로 사용자 컨트롤을 추가하고 내부의 드롭 다운리스트를로드 할 때라도 코드를 사용하고 다운 목록. Page_Init에서 컨트롤을 추가하는 동안 동일한 ID를 사용하고 있는데 왜 컨트롤이 viewstate에서 값을 가져 오지 못합니까?
'custControlCountID' 변수가 선언 된 곳은'ViewState'에 값을 저장합니까? –
'custControlCountID'는'_Default' 클래스의 개인 정적 변수입니다 – nishantv
정적 변수는 응용 프로그램 전체에 적용되며 모든 사용자에게 공유됩니다. 따라서이 페이지를 방문하는 모든 사용자는 동일한 변수를 공유하게됩니다. 즉시 제거하고'ViewState' 변수를 사용하는 속성으로 대체하십시오. –