2012-01-28 11 views
1

ASPxClientComboBox.AddItem()を呼び出すとき、_aspxRemoveAttribute関数でエラーが発生し、そのobjがnullです。ASPxClientComboBox AddItemメソッドがエラーをスローする

これは、決して結果を返さないCreateNewItem関数にトレースされています。

私のコンボボックスは未使用で始まり、クライアント側でアイテムを追加しようとしていますが、コンボボックスにアイテムを追加しようとしたときに同じエラーが発生しました。

これは、v2011 vol 2.5リリースを使用しています。

EDITここ は、コンボボックスのマークアップです:

<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、の一部です。

現時点では、私はちょうどクライアント側の空のコンボボックスに2つの文字列パラメータを使って項目を追加しようとしています。

+0

を、あなたのマークアップを共有するのでしょうか?最初にASPxComboBoxにアイテムがありますか? – Mikhail

答えて

0

コントロールのclient-side programmatic objectを有効にして、次のようにクライアント側のAddItemメソッドを使用するASPxComboBox.ClientInstanceNameプロパティを指定します。

<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> 
+0

はい、AddItemを正しく実行していましたが、私はClientInstanceNameプロパティを指定していませんでした。しかし、ドキュメントでは、EnableClientSideApi、またはClientInstanceNameが設定されていると、APIが有効になると言われています。どちらも設定していないにもかかわらず、まだクライアントAPIを使用できましたが、正しく動作しませんでした。 – Adam

+0

>> *どちらも設定していませんが、まだクライアントAPIを使用できましたが、正しく動作しませんでした。*このコードをどのように呼びますか? – Mikhail

+0

少し複雑ですが、基本的にはDevExpressコントロールのインスタンスを探して、一致するhtml要素を見つけることができます。変数をテストするために 'x instanceof ASPXClientComboBox'を使っていますので、インスタンスを見つけることになります。ほとんどの人がこのようにコードを呼び出す可能性は低いと認めます。私はインスタンス名がクライアント側にあったかどうかは分からない。すべてが自動的に起こるからだ。 (あなたが疑問に思っている場合は、KnockoutJSのバインディングを書いてdevexpressコントロールで動作させることができます。 – Adam

1

困ったことに、これは、EnableClientSideScriptが有効になっていないためです。しかし、クライアント側のapiは利用可能でしたが、正しく機能しませんでしたが、正しい動作のようには見えません。

関連する問題