.Net Listbox不会用javascript事件处理程序编译?

时间:2011-02-25 13:50:22

标签: javascript asp.net ajaxcontroltoolkit

这应该是最简单的事情,但它不会起作用。我有一个简单的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足以理解应该工作......

感谢任何能指出我正确方向的人!

4 个答案:

答案 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,它会引用代码隐藏方法。