【问题标题】:Javascript event handler fires "error: CS1026: ) expected" exceptionJavascript 事件处理程序触发“错误:CS1026:) 预期”异常
【发布时间】:2012-12-10 16:44:28
【问题描述】:

我创建了一个动态控件表,其中每一行都是一对(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";
    }
}

【问题讨论】:

  • 请向我们展示生成的 JavaScript——浏览器实际接收的代码。
  • ControlId的值是多少?
  • 您不能将客户端变量 (ControlId) 传递到服务器端代码,因为服务器端代码已经被处理。

标签: javascript c# asp.net controls dom-events


【解决方案1】:

在你的javascript中你有

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

&lt;%= ... %&gt; 部分在服务器上呈现,因此无法在 javascript 中以这种方式完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 2014-12-01
    • 2013-11-03
    • 2021-08-31
    相关资源
    最近更新 更多