2012-01-28 8 views
1

ASPxClientComboBox.AddItem()을 호출 할 때 _aspxRemoveAttribute 함수에서 오류가 발생합니다. 그 obj는 null입니다.ASPxClientComboBox AddItem 메서드가 오류를 throw합니다.

결과를 반환하지 않는 CreateNewItem 함수로 추적했습니다.

내 콤보 상자가 채워지지 않고 클라이언트 측에서 항목을 추가하려고하지만 항목이 서버 쪽에서 이미 추가 된 항목을 콤보 상자에 추가하려고 할 때 같은 오류가 발생합니다.

이것은 v2011 vol 2.5 릴리스를 사용하고 있습니다.

<dx:ASPxComboBox ID="txtCountry" runat="server" Width="95%" data-bind="dxDataBind: Countries, keyMember: 'Id', displayMember: 'Name', SelectedKey: CountryId"> 
    <ValidationSettings> 
     <RequiredField IsRequired="True" ErrorText="Country required" /> 
    </ValidationSettings> 
</dx:ASPxComboBox> 

데이터-bind 속성 내가 다른 컨트롤에 바인딩 적응을 시도하고 KnockoutJS의 일부입니다 :

편집 다음은 콤보 상자 마크 업입니다.

기본적으로 나는 두 개의 문자열 매개 변수를 사용하여 클라이언트 측의 빈 콤보 상자에 항목을 추가하려고합니다.

+0

당신이 당신의 마크 업을 공유하는 것입니다 : – Mikhail

답변

0

활성화 컨트롤의 client-side programmatic object 다음과 같이 클라이언트 측 AddItem 방법을 사용하는 ASPxComboBox.ClientInstanceName 속성을 지정

? ASPxComboBox에 처음에 항목이 있습니까?
+0

예, AddItem을 올바르게 수행하고 있었지만 ClientInstanceName 속성을 지정하지 않았습니다. 그러나 문서에서는 EnableClientSideApi 또는 ClientInstanceName을 설정하여 API를 활성화 할 수 있다고합니다. 둘 중 하나를 설정하지 않았지만 아직 클라이언트 API를 사용할 수 있었지만 제대로 작동하지 않았습니다. – Adam

+0

>> * 어느 쪽도 설정하지 않았지만 아직 클라이언트 API를 사용할 수 있었지만 올바르게 작동하지 않았습니다. *이 코드를 어떻게 호출합니까? – Mikhail

+0

조금 복잡하지만 기본적으로 페이지에서 DevExpress 컨트롤의 인스턴스를 찾고 일치하는 html 요소를 찾습니다. 변수를 테스트하기 위해'x instanceof ASPXClientComboBox'를 사용하고 있습니다. 그래서 인스턴스를 찾습니다. 나는 대부분의 사람들이이 방법으로 코드를 호출 할 가능성이 없다는 것을 인정한다. 이 모든 것이 자동으로 발생하기 때문에 인스턴스 이름이 클라이언트 측에 무엇인지 알지 못합니다. (궁금한 점이 있으시면, devexpress 컨트롤로 작업 할 수 있도록 KnockoutJS에 대한 바인딩을 작성하고 있습니다. 정말 좋았습니다!) – Adam

1

Embarassingly 나는 EnableClientSideScript를 사용할 수 없기 때문에이 문제를 해결했습니다. 그러나 클라이언트 측 API를 사용할 수 있었지만 제대로 작동하지 않아 올바른 동작이 아닌 것 같습니다.

<dx:ASPxComboBox ID="txtCountry" runat="server" Width="95%" ClientInstanceName="cmb"> 
    <ValidationSettings> 
     <RequiredField IsRequired="True" ErrorText="Country required" /> 
    </ValidationSettings> 
</dx:ASPxComboBox> 
<input type="button" value="Add Item" onclick="OnClick();" /> 

<script type="text/javascript"> 
    function OnClick() { 
     var text="Text1"; 
     var value="Value1"; 

     cmb.AddItem(text, value); 
    } 
</script> 
관련 문제