체크 박스의 목록 리피터 컨트롤을 다음 되세요 확인란을 선택하고 삭제를 클릭하면 코드가 확인란을 찾지 만 읽지 않은 것으로 읽으므로 항목을 삭제하지 않습니다.얻기 리피터 항목의 체크 박스 값은
아이디어가 있으십니까?
체크 박스의 목록 리피터 컨트롤을 다음 되세요 확인란을 선택하고 삭제를 클릭하면 코드가 확인란을 찾지 만 읽지 않은 것으로 읽으므로 항목을 삭제하지 않습니다.얻기 리피터 항목의 체크 박스 값은
아이디어가 있으십니까?
100 % 확신 할 수는 없지만 모든 페이지로드시 데이터 바인딩을 수행하고 있습니까? 단지 바인딩 시도 !IsPostBack
페이지로드로 인해 리피터가 다시 바인딩되어 모든 현재 상태가 다시 죽어서 발생합니다.
롤, 학교 소년 오류. 그래, 데이터 바인딩은 페이지로드에서 수행되어 상태를 죽이는 중이었습니다. 감사합니다 – HuwD
** + 1 ** 좋은 캐치 –
업데이트 패널에 리피터가 있습니다. 이 페이지의 일부가 아닌 경우 작동하지 않습니다에 대한
foreach (RepeaterItem item in rpLists.Items)
{
if (item.Controls.Count > 0)
{
DataBoundLiteralControl dbLt = item.Controls[0] as DataBoundLiteralControl;
if (dbLt != null)
{
var controlCollection = this.ParseControl(dbLt.Text);
HtmlInputCheckBox cbInclude = (HtmlInputCheckBox) FindControl(controlCollection, "cbIncludeList");
if (cbInclude != null)
{
if (cbInclude.Checked)
{
//your code here
}
}
}
}
}
내가의 FindControl에 대한에 재귀 적 방법을 만들 수 있었다, 뭔가 : 그래서 RepeaterItem의 유일한 컨트롤이 나를 위해 일한 DataBoundLiteralControl
했다. 는 어깨를 으쓱는 는 awesomeness에 여기 ASP.Net FindControl is not working - How come?
private Control FindControl(Control parent, string id)
{
if (parent.ID == id)
return parent;
if (parent.HasControls())
{
foreach (Control childControl in parent.Controls)
{
if (childControl.ID == id)
return childControl;
if (childControl.HasControls())
return FindControl(childControl, id);
}
}
return null;
}
1을 참조하십시오. 리피터에서 값을 저장하기 위해 숨겨진 필드를 사용하는 것에 대해서는 생각하지 않았습니다. 제가 더 많은 투표를 할 수 있다면 그렇게 할 수 있습니다. –