런타임 중에 일부 확인란을 동적으로 추가하고 다음에 다시로드 할 때 확인란을 선택했는지 여부를 알아야합니다. ViewState에 저장된 목록에서 확인란 값을로드합니다. 질문은 다음과 같습니다. Checked? 체크 상자에 이벤트 처분을 시도했지만 체크 박스를 추가 할 자리 표시자를 시도했지만 해고되지 않았습니다. 즉 중단 점을 넣을 때 멈추지 않았습니다. 그래서 어떤 제안이라도? 동적 체크 박스의 "Checked"속성 값을 저장하는 방법
이
은 샘플 코드입니다,하지만 난 그게 필요하다고 생각하지 않습니다void LoadKeywords()
{
bool add = true;
foreach (string s in (ViewState["keywords"] as List<string>))
if (s == ddlKeywords.SelectedItem.Text)
{
add = false;
continue;
}
if (add)
(ViewState["keywords"] as List<string>).Add(ddlKeywords.SelectedItem.Text);
foreach (string s in (ViewState["keywords"] as List<string>))
{
CheckBox kw = new CheckBox();
kw.Disposed += new EventHandler(kw_Disposed);
kw.Text = s;
PlaceHolderKeywords.Controls.Add(kw);
}
}
감사합니다. 나는 당신의 아이디어를 이해하기 시작했으나, 무엇이 채워 졌는가? –
Ahmed,이 코드는 예제처럼 Checkbox 컨트롤을 PlaceHolder 컨트롤로 채 웁니다. 이것은 Page (또는 Control) Init 메소드 중에 발생합니다. 나는 단지 3 가지를 만들었지 만 원하는만큼 많은 체크 박스를 만들 수 있습니다. Viewstate를 사용하지 않으면 PostBack에서 CheckBox.Checked 속성을 유지할 수 없기 때문에 페이지 초기화에서이 작업을 수행해야합니다. 그런 다음 페이지로드 (Viewstate가로드 된 후)에 다시 게시 할 때 사용자가 양식을 제출하면 확인란의 상태를 읽을 수 있습니다 (버튼이있을 수 있습니다). –
코드 예제를 조금 더 명확하게 업데이트했습니다. 조금 더 이해가 가지기를 바랍니다. –