0

템플릿을 사용하여 검도 UI 목록보기를 사용하면 조건부로 기본 데이터를 기반으로 요소가 숨겨집니다.데이터를 변경할 때 포커스가 끊어지는 검도 목록보기

<script type="text/x-kendo-template" id="template"> 
    <div class="product"> 
     <img src="../content/web/foods/#= ProductID #.jpg" alt="#: ProductName # image" /> 
     <h3>#:ProductName#</h3> 
     <p>#:kendo.toString(UnitPrice, "c")#</p> 
     <div> 
      # if (Discontinued) { # 
       Discontinued Product 
      # } # 
     </div> 
    </div> 
</script> 

을 내가 다음 코드를 사용하여 단종 설정하려면 기본은 dataSource 항목을 수정하는 경우 : 다음과 같이 예는 것 인덱스가 현재 선택된 항목 인 경우

data[index].set('Discontinued', true);  

를 그 항목에 초점을 푼다 및 더 이상 선택되지 않습니다.

다음 도장 예제 http://dojo.telerik.com/UlOze을 참조하고 목록에서 항목을 선택한 다음 단종되도록 설정하십시오.

누구든지이 문제에 대한 해결책/해결 방법을 찾았습니까?

감사합니다. 내가 솔루션을 함께 조합해서 아래

------------- 최종 솔루션 --------------

dimodi의 대답에 이어 .. 이 작업을 수행하려면 dataSource에 스키마 -> 모델 -> id 특성 세트가 있어야합니다.

1 캡처 현재 선택된 데이터 항목 :

 var selectedItem = $(listElement).find(".k-state-selected"); 
     var selectedDataItem = list.dataItem(selectedItem); 

2 : 데이터 항목을 다시 찾아 K-국가 선택 클래스를 설정 .SET 호출 한 후. 목록 요소가 uid를 다시 생성하기 때문에 이것은 필수입니다.

 if (selectedDataItem) { 
     var newSelectedItem = list.dataSource.get(selectedDataItem.ProductID) 
     var uid = newSelectedItem.uid; 
     jQuery("[data-uid='" + uid + "']").addClass("k-state-selected"); 
     } 

이 솔루션을 보여주기 위해 원본 도장을 업데이트했습니다. 다른 사람에게 도움이됩니다.

답변

2

데이터 항목이 변경되면 해당 ListView 항목이 다시 렌더링되어 변경 내용이 적용됩니다. 따라서 리바 인드에서 지속되지 않는 순수한 시각적 기능이기 때문에 선택 영역이 손실됩니다. set()을 사용하기 전에 항목이 선택되었는지 확인한 다음 k-state-selected 클래스를 나중에 요소에 적용하여 선택을 수동으로 복원 할 수 있습니다.

+0

기본 데이터가 변경되었을 때 addClass가 작동하지 않지만 아무것도 변경되지 않으면이 솔루션이 작동하지 않는 것 같습니다. 나는 setTimeout을 사용하여 도움이되는지 아닌지 알아 보았지만 기쁨은 없었다. 이 일을하기 위해 다른 것을해야합니까? – ciantrius

+0

위의 설명을 용서하십시오. 나는 단지 listview가 데이터 소스 요소의 uid를 재생성하는 것으로 나타났습니다. 나는이 문제를 극복하기 위해 코드를 수정했으며 이제는 작동한다. – ciantrius

관련 문제