0

我创建了一个动态控件表,其中每一行都是一对(DropDownList 和 TextBox),然后我在每个 DropDownList 选择的更改事件上关联了一个事件处理程序,因此我可以在其 TextBox 上进行更改,如下面的代码所示:

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";
    }
}
4

1 回答 1

3

在你的 javascript 中,你有

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

这些<%= ... %>部件在服务器上呈现,因此不能在 javascript 中以这种方式完成。

于 2012-12-10T16:47:54.410 回答