我已经创建了一个动态控件表,每行都是几个(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";
}
}
答案 0 :(得分:3)
在你的javascript中
var FieldsDDL = document.getElementById("<%="+ControlId +".ClientID%>");
<%= ... %>
部分在服务器上呈现,因此无法在javascript中以这种方式完成。