这应该是最简单的事情,但它不会起作用。我有一个简单的asp.net列表框,对于事件OnSelectedIndexChanged我想启动一个javascript函数。这适用于当我设置链接以启动相同的功能但不为此特定控件设置时。代码行如下:
<tr><td>
<asp:ListBox ID="ListBox1" runat="server" Width="250"
Height="600" OnSelectedIndexChanged="javascript:selectedIndexChanged()">
</asp:ListBox>
</td></tr>
以下是我得到的编译错误:
c:\ .. \ ManufInfo.aspx(171,84):错误 CS1026 :)预期
c:\ .. \ ManufInfo.aspx(171,84):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,84):错误 CS1525:无效的表达式术语':' c:\ .. \ ManufInfo.aspx(171,84):错误 CS1026 :)预期
c:\ .. \ ManufInfo.aspx(171,84):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,84):错误 CS1525:无效的表达式术语':' c:\ .. \ ManufInfo.aspx(171,85):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,85):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,107):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,107):错误 CS1525:无效的表达式术语')'
c:\ .. \ ManufInfo.aspx(171,107):错误 CS1002 :;预计
c:\ .. \ ManufInfo.aspx(171,107):错误 CS1525:无效的表达式术语')'
到底是怎么回事? ;)可能是一个n00b错误,但我认为我已经拿起jscript足以理解应该工作......
感谢任何能指出我正确方向的人!
答案 0 :(得分:1)
OnSelectedIndexChanged不适用于javascript处理程序。在page_load上试试这个
ListBox1.Attributes.Add("onclick", "selectedIndexChanged()");
答案 1 :(得分:1)
OnSelectedIndexChanged
属性中的值必须是代码隐藏(或代码旁边)中与EventHandler
委托的签名匹配的方法的名称,该签名在{{1}}委托上执行回帖。
SOE提供了向您的控件添加javascript onclick事件的正确方法。
答案 2 :(得分:1)
此属性是为ASP.Net事件设计的,不适用于客户端事件处理。
您可以在控件呈现后附加一个事件处理程序:
document.getElementById('<%=ListBox1.ClientID %>').onChange = function (){
// your selectedIndexChanged logic goes here
};
答案 3 :(得分:1)
OnSelectedIndexChanged是服务器端。不会触发javascript,它会引用代码隐藏方法。