当我使用javascript更改在代码隐藏中创建的控件时,就会发生错误
The error occurs when I use javascript to change a control what is created in code behind?
我是ASP.NET的新手,在工作中遇到问题,请帮忙。
我想在ASP页面的下拉列表中动态添加选项。所以我写了一个javascript函数:
<body>
<form id="form1" runat="server" style="height:100%">
</form>
<script type="text/javascript">
function addOptionToSelect(optKey, optValue) {
var select = document.getElementById('<%=mySelect.ClientID%>');
var opt = new Option(thisLabel, thisValue);
select.add(opt);
}
}
</script>
</body>
由于某些原因,我不得不在ASP:的代码后面添加dropdownlist web控件
protected void Page_Load(object sender, EventArgs e)
{
Table t = new Table();
form1.Controls.Add(t);
TableRow r = new TableRow();
formatTable.Rows.Add(r);
TableCell c = new TableCell();
formatRow.Cells.Add(c);
DropDownList select = new DropDownList();
select.ID = "mySelect";
select.Text = "mySelect:";
c.Controls.Add(select);
}
我会得到错误:
编译器错误消息:CS0103:名称"mySelect"在当前上下文中不存在。
但是,如果我直接在ASP页面中添加下拉列表,则不会出现错误。
<form id="form1" runat="server" style="height:100%">
<div>
<asp:DropDownList ID="a_content_type" runat="server">
</asp:DropDownList>
</div>
</form>
我应该如何解决错误?"在asp页面中添加asp web控件"answers"在代码背后添加asp web控制"有什么区别?
我想我找到了另一种方法来解决这个问题。首先,我在ASP头中添加了一个新功能:
function setClientID(id) { this.clientID = id; }
然后,在创建下拉列表后,将以下代码添加到代码后面:
Page.ClientScript.RegisterStartupScript(this.GetType(), "setClientID", "setClientID('" + mySelect.ClientID + "');", true);
最后,使用"this.ClientID"替换"<%=mySelect.ClientID%>"。它有效。
相关文章:
- LoadControl HttpCompileException自定义服务器控件JavaScript错误
- 显示使用 Jquery 的控件的错误消息
- 禁用WPF WebBrowser控件中的JavaScript错误
- 无法修改Controls集合,因为控件包含代码块(即<%.%>).无法更正此错误
- Javascript在每个有问题的控件上输出一条错误消息
- OL3 缩放到范围控件引发“未捕获的断言错误:断言失败:无效的范围或几何”
- 水星编辑器 0.9 - 内容 iFrame 位于编辑器控件后面,高度错误
- 我将 javascript 验证添加到我的登录控件中,尽管存在错误
- 三.js + 轨道控件 - 未捕获类型错误:无法读取未定义的属性“渲染”
- 如何在输入错误的用户名和/或密码时将用户从登录控件重定向到错误页面
- 使用Web浏览器控件和https时出现Javascript错误,但它在IE中工作
- win.js.ui.html控件:'元素'未定义.?这个错误是什么
- 当我使用javascript更改在代码隐藏中创建的控件时,就会发生错误
- ascx控件两次添加到页面时调用了错误的javascript函数
- ajax日历控件错误
- 为什么在ajax表单中出现名为javascript的无效表单控件错误
- 如何在Qt WebView控件上查看错误
- 如何在几个ASP上显示/隐藏错误消息?. NET验证控件
- 在flex (web控件)中使用angularjs时出现跨域错误,并试图加载模板/json(本地文件)
- 错误的定时问题,Telerik RadEditor控件's客户端事件和jquery's on page