2012-01-28 79 views
1

當調用ASPxClientComboBox.AddItem()時,我得到_aspxRemoveAttribute函數中的一個錯誤,即obj爲null。ASPxClientComboBox AddItem方法拋出錯誤

我已將它跟蹤到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> 

數據綁定屬性是KnockoutJS,其中我試圖適應綁定到其他控件的一部分。

本質上,此刻我只是試圖將一個項目添加到客戶端上的一個空的組合框,兩個字符串參數。

+0

你會分享您的標記?最初有沒有ASPxComboBox中的任何項目? – Mikhail 2012-01-28 17:17:12

回答

0

指定ASPxComboBox.ClientInstanceName屬性,以使控制的client-side programmatic object,並使用客戶端AddItem方法如下:

<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屬性。但是文檔說api將通過設置EnableClientSideApi或ClientInstanceName來啓用。我沒有設置,但我仍然能夠使用客戶端API,它只是無法正常工作。 – Adam 2012-01-29 14:15:16

+0

>> *我沒有設置,但我仍然能夠使用客戶端API,它只是無法正常工作。*你如何調用此代碼 – Mikhail 2012-01-29 14:48:05

+0

這有點複雜,但基本上我正在搜索聲明的變量頁面,查找DevExpress控件的實例,然後查找其匹配的html元素。我使用'x instanceof ASPXClientComboBox'來測試變量,所以它找到了一個實例。我承認大多數人不太可能以這種方式調用代碼。我甚至不知道客戶端的實例名稱是什麼,因爲這一切都是自動發生的。 (如果您想知道,我正在爲KnockoutJS編寫一個綁定,以允許它使用devexpress控件 - 它看起來非常好!) – Adam 2012-01-29 19:37:03

1

我很難理解,這是因爲EnableClientSideScript沒有啓用。然而,客戶端API是可用的,它只是沒有正常工作,這似乎不正確的行爲。