0

各行が 2 つの動的コントロール (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 に答える