c#
  • asp.net
  • detailsview
  • 2011-12-02 1 views 2 likes 
    2

    원래 나는 그것의 CheckBox에있는 TemplateField했다하지만 난DetailsView 내의 CheckboxField에서 Checked 상태를 추출 할 수 있습니까?

    Checked='<%# (bool)Bind("FieldName") %> 
    

    또는 그것은 잘못된 캐스트 예외를 던지는 유지

    Checked='<%# (bool)Eval("FieldName") %> 
    

    를 사용하여 체크 박스 값을 설정할 수 없습니다. 데이터베이스의 필드는 1 또는 0으로 설정된 비트 필드입니다.

    체크섬 필드로 전환을 시도했지만 데이터 소스에서 updatecommand 매개 변수를 사용하는 대신 코드 업데이트에 코드가 있기 때문에 시도 할 수 없습니다. 내 비즈니스 로직에 전달하도록 CheckBoxField에서 값을 검색하십시오.

    Detailsview의 CheckBox 필드에서 값을 검색하는 방법을 알려줄 수 있습니까?

    답변

    1

    int에서 bool로 캐스트 할 수 없습니다. 시도해보십시오 Convert.ToBoolean(Eval("FieldName")) 그래도 Eval을 사용할 수 있는지 확실하지는 않지만 그게 일반적인 아이디어입니다.

    1

    본인은 HTML이 아닌 1 또는 0

    0

    당신이

    CheckBox ckBox = ucDetailView.FindControl("CheckBoxID") as CheckBox 
    if(ckBox != null){ 
        ckBox.Checked = (bool)datasource["FieldName"].ToString() 
        //.. or some better casting code with more null checks 
    } 
    

    가 설정 사용할 수, 참 또는 거짓을 찾고 있기 때문에 당신이 데이터베이스에서 값에 ToString()를 사용할 필요가 있다고 생각 거기에서 코드 뒤에. 솔루션이 작동하는 것처럼 보였습니다 here

    +0

    나는 원래 이와 비슷한 것을 가지고 있었지만 나는 대체로 checboxfield를 이용하고 있었다. 그러나 내가 위에 수락 한 제안이 당신이 언급 한이 방법을 계속 사용할 수 있기 때문에. – gsirianni

    관련 문제