2013-05-31 27 views
0

为什么会发生(只有一些时候),当我向控件添加事件处理程序时,它不会提供intellisense选项来生成新的事件处理程序。这导致Visual Studio 2012不在后台创建代码来将控件与事件相关联。ASP.net事件不生成

我可以去手动创建事件,但正如我所说,它会创建其他后台代码来将控件与该事件处理程序关联。

asp.net

<asp:DropDownList ID="drpdwnRecordId" runat="server" Visible="false" OnSelectedIndexChanged="MyOwnEventHandler_OnSelectedIndexChanged"> 
     <asp:ListItem Text="Please Select a Record ID" Value="nothing"></asp:ListItem> 
    </asp:DropDownList> 

C#

protected void MyOwnEventHandler_OnSelectedIndexChanged(object sender, EventArgs e) 
     { 

     } 

这究竟是为什么?我该如何解决这个问题,或者我可以自己写一些背景代码(这是一个好主意吗?)

+0

您想在'OnSelectedIndexChanged'事件中做什么?您可能需要使用'Update Panel',或者添加'AutoPostBack =“true”':) – zey

+0

您显示关注此链接> http://stackoverflow.com/q/341080/1427849 – zey

回答

0

如果你把它放在UI页面上,它会生成所有需要的代码在编译时调用该函数。您必须编译要创建的代码的项目。

除了你在这里展示的东西外,不需要额外的代码(由你编写)。

+0

我试过了,它没有生成,而不是解雇事件。 – Ruan

+0

你确定你没有错别字(轻微的拼写错误?) – Hogan

+1

认为有一个错误在VS有时发生..重新启动项目,它工作得很好..谢谢 – Ruan

0

您可以通过右键单击页面(.aspx,.ascx)去代码隐藏并选择查看代码。 您可以使用OnInit或OnLoad方法来协调您的事件。

但是,您必须在该页面中定义您的控件!

DropDownList dropdwnRecordId; 

protected void override OnLoad(...) 
{ 
    dropdwnRecordId.SelectedIndexChanged += YourHandler; 
} 

此致,德米特里。