2014-03-27 32 views
0

我有一個ASPxGridView從後面的代碼綁定。給我的問題列具有以下定義:DevExpress 9.3 PropertiesText ClientInstanceName - document.GetElementById問題

<dx:GridViewDataTextColumn Caption="Code Special" FieldName="Code" VisibleIndex="14" 
           HeaderStyle-Wrap="true" Visible="false"> 
           <EditFormSettings Visible="false" VisibleIndex="14" CaptionLocation="Top" /> 
           <PropertiesTextEdit Width="100%" ClientInstanceName="codeSpecialProject"> 
           </PropertiesTextEdit> 
          </dx:GridViewDataTextColumn> 

我使用PropertiesTextEdit的ClientInstanceName在JavaScript中找到textobx控制當行處於編輯模式和設置的特定值。下面的Javascript:

 function OnGetRowValues(values) { 
     document.getElementById(codeSpecialProject.uniqueID).value = values; 
    } 

上面的代碼在comptability視圖(IE 7),但在拋出Chrome和IE的其他版本中的一個空的異常。發生錯誤的行:

document.getElementById(codeSpecialProject.uniqueID) // is null 

我正在使用DevExpress 9.3版本。我想這可能與DevExpress如何渲染aspx有關。

但爲什麼它只能在IE7上工作?

回答

0

的問題是,

codeSpecialProject.uniqueID 

返回控制不是ID標籤的名稱標籤。

IE 7有一個問題,它允許document.getElementById通過它們的名稱標籤來識別控件,而不僅僅是它們的id。由於這個問題(錯誤)的IE 7,它在IE 7中工作,但在所有其他瀏覽器失敗。

有關該問題的更多詳細信息here

的PropertiesTextEdit的ClientInstanceName(其是ASPxClientTextBox

<PropertiesTextEdit Width="100%" ClientInstanceName="codeSpecialProject"> 
          </PropertiesTextEdit> 

在JavaScript

codeSpecialProject 

具有若干客戶端方法中使用的創建。 改變其文本,應該使用下面的方法:

codeSpecialProject.SetValue('text') 

更多關於DevExpress的客戶端方法here