2012-12-10 63 views
0

我已經創建了一個動態控件的表,每行是幾個(DropDownList和TextBox),然後我已經關聯每個DropDownList事件處理程序選擇變化事件這樣我就可以在它的文本框更改爲下面的代碼所示:JavaScript事件處理程序觸發「錯誤:CS1026:)預計」異常

DropDownList TypeDDL = new DropDownList(); 
    TypeDDL.ID = "TypeDDL_" + rowN.ToString(); 
    TypeDDL.Width = 120; 
    TypeDDL.Height = 20; 
    InitializeTypeDDL(TypeDDL); 
    TypeDDL.AutoPostBack = true; 
    TypeDDL.Attributes.Add("onchange", "javascript:handleFieldsDDLEvent(this);"); 
    TextBox FieldsDDL = new TextBox(); 
    FieldsDDL.ID = "FieldsDDL_" + rowN.ToString(); 
    FieldsDDL.Width = 120; 
    FieldsDDL.Height = 20; 
    FieldsDDL.Attributes.Add("style", "float:right"); 

但事件處理程序的JavaScript代碼觸發一個例外告訴:

function handleFieldsDDLEvent(e) { 
    var elementId = (e.target || e.srcElement).id; 
    var IdArray = elementId.Split('_'); 
    var ControlId = "Control_"+IdArray[1].toString(); 

    if (IdArray[1] != "") { 
     var FieldsDDL = document.getElementById("<%="+ControlId +".ClientID%>"); 
     // error CS1026:) expected 

    ValueTxtBx.style.display = "none"; 
    } 
} 
+1

向我們展示_generated_ JavaScript please - 瀏覽器實際接收的代碼。 –

+0

'ControlId'的價值是什麼? –

+0

由於已經處理了服務器端代碼,因此無法將客戶端變量('ControlId')傳遞到服務器端代碼中。 –

回答

3

在你的JavaScript你必須

var FieldsDDL = document.getElementById("<%="+ControlId +".ClientID%>"); 

<%= ... %>零件在服務器上呈現,因此無法在javascript中以此方式完成。

相關問題