我有一个控制与一个updatepanel内的连接到一个计时器的列表框,该计时器在主窗体上使用脚本管理器执行autopostback。使用JavaScript访问子页面控件(asp.net)
为了保持整个回发中选择的项目我使用下面的JavaScript。我已经对此进行了相当深入的研究,并且不相信有另一种方法可以在回传之间选择所选项目。然而,这个解决方案似乎工作得很好。
我的问题是,当我将第二个控件添加到主窗体时,它不起作用。
我试图移动的JavaScript进入的主要形式,但是我不能利用的主要形式访问子控件:
document.getElementById('<%=PositionsControl.FindControl("ListBox_Candidates").ClientID %>').selectedIndex
我自己也尝试重命名BeginRequestHandler和EndRequestHandler独特的名称(以避免冲突当这个脚本在两个控件上)并且它不起作用。
任何帮助,非常感谢。
<script type="text/javascript">
var index
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
index = document.getElementById('<%=ListBox_Candidates.ClientID %>').selectedIndex;
}
function EndRequestHandler(sender, args) {
$get('<%=ListBox_Candidates.ClientID %>').selectedIndex = index;
}
</script>
对不起,我不明白你能解释一下你的意思,请问哪个属性? – Jamesla 2013-03-22 08:39:03
在代码行为(c#?)添加属性,这将公开您需要的值(selectedIndex)。在JavaScript中,绑定到它的控制值。像<÷= MyServerProperty - > – evgenyl 2013-03-22 11:24:16
控件当前绑定正确。绑定控件没有问题。当我在同一页面上有两个这样的脚本时(注册2个beginRequest事件处理程序),就会出现问题。 – Jamesla 2013-03-22 22:56:39