2016-07-15 23 views
0

我們動態創建一個帶有可編輯下拉列表的網頁。但它不能在Chrome中編輯,它在IE中工作。以下是在頁面上動態創建的代碼和結果。C# - ASP.NET AJAX控件的組合框控件在Chrome中不可編輯

AjaxControlToolkit.ComboBox comboBox = GetComboBox(i); 
sControlID = comboBox.ID; 
comboBox.TabIndex = (short)(i + 100); 
if (ca.List != null) 
{ 
     string[] sList = ca.List; 
     Array.Sort(sList); 
     for (int j = 0; j < sList.Length; j++) 
      comboBox.Items.Add(sList[j]); 
     } 
     ListItem li = comboBox.Items.FindByText(sVal); 
     if (li != null) 
      li.Selected = true; 
     else 
     { 
      li = new ListItem(sVal); 
      comboBox.Items.Add(li); 
      li.Selected = true; 
      } 
     tc.Controls.Add(comboBox); 
} 

enter image description here

我發現下面的代碼片段在底部經常script標籤內的頁面,

Sys.Application.add_init(function() { 
$create(Sys.Extended.UI.ComboBox, {"autoCompleteMode":3,"autoPostBack":true,"buttonControl":$get("comboBox2_comboBox2_Button"),"comboTableControl":$get("comboBox2_comboBox2_Table"),"dropDownStyle":1,"hiddenFieldControl":$get("comboBox2_comboBox2_HiddenField"),"optionListControl":$get("comboBox2_comboBox2_OptionList"),"selectedIndex":4,"textBoxControl":$get("comboBox2_comboBox2_TextBox")}, null, null, $get("comboBox2")); 
}); 

正如你可以看到,在片段中textBoxControl是申請此可編輯的文本下拉列表。如果我從代碼片段中刪除它("textBoxControl":$get("comboBox2_comboBox2_TextBox")),它可以被編輯,但後面的按鈕不起作用,這意味着下拉列表不起作用。

任何想法這裏發生了什麼?提前致謝。

UPDATE:

我想,這是Ajax控件工具包,我認爲我張貼的片段是對這個問題的關鍵。當頁面加載時,它會更改並覆蓋原始元素。我檢查了關於此控件的文檔,發現dropDownStyle用於控制允許用戶編輯或不編輯的權限。但正如文件所說,有三個值是'DropDownList','DropDown'和'Simple'。但是當我改變這個值時它不起作用。

+0

第一步,您在Chrome中遇到什麼控制檯錯誤(如果有的話)?請提供您用於創建組合的代碼。 –

+0

沒有控制檯錯誤。 – Sky

+0

你知道這個片段是什麼嗎? – Sky

回答

0

很多感謝@Jon P的幫助。

最後我找到一些線索here。這是由於ComboBox Control和Chrome之間的版本不匹配造成的。

它適用於Chrome版本47.xxx(我的版本用於測試),不確定它是否適用於新版本,它不適用於最新版本(51.xxx)。