【问题标题】:When I click a button on the form...my code never reaches it's onclick event当我单击表单上的按钮时...我的代码永远不会到达它的 onclick 事件
【发布时间】:2009-05-19 14:15:26
【问题描述】:

我在表单上有一个下拉列表和一个带有按钮的文本框。单击按钮时,即使在代码中它也不会转到我的 onclick,但会转到我的下拉列表的 selectedIndexchanged 事件。我该如何解决这个问题?

【问题讨论】:

  • 你能发布一些代码吗?具体来说,您的 .aspx 页面中控件所在的部分,以及代码隐藏/代码旁边的部分,其中声明了两种方法(button_click 和 dropdownlist_selectedindexchanged)。
  • 一些代码会有所帮助。现在可能有很多不同的问题。
  • 您是以编程方式还是以声明方式创建按钮?
  • 我用代码编辑了问题。
  • 我将您的句子从“即使在代码中单击它也不会进入我的 onclick”更改为“在代码中单击它不会进入我的 onclick '事件'”,我看到你改变了它回来了吗?

标签: asp.net vb.net event-handling drop-down-menu selectedindexchanged


【解决方案1】:

我不是 VB.net 人,但请尝试将您的 asp:button 更改为:

 <asp:Button id="btnlookup" Height="24px" Text="LookUp" Width="60px" 
 OnClick="btnlookup_Click" runat="server"/>

【讨论】:

  • 为什么这被否决了,当这是 OP 在他的代码中的一个明显错误时:他有 btnlookup_Click="btnlookup_Click" 而不是 OnClick="btnlookup_Click"
  • 感谢您收回反对票。在否决之前尝试仔细查看答案
【解决方案2】:

除了检查回发之外,您的 Page_Load 是否需要更改所选索引或 DropDownList 中的项目?

【讨论】:

  • 实际上你非常接近正确。好想法。但是,它不在页面加载中,而是在 Page_SaveStatecomplete 事件中进行。 DropDownList1.Items.Insert(0, "Select a Vendor") DropDownList1.SelectedIndex = 0 如果没有这个问题,我该怎么做?
  • 有趣,在msdn.microsoft.com/en-us/library/ms178472.aspx 上它说,“SaveStateComplete - 在此事件发生之前,已为页面和所有控件保存 ViewState。此时对页面或控件的任何更改都将被忽略. 使用此事件执行需要保存视图状态但不对控件进行任何更改的任务。这真的是您应该添加默认供应商的地方吗?您可能应该在非回发(页面第一次运行)时将其添加到 Page_Load 中。并且还使用“”作为必填字段验证的值。
  • 我也这么认为,但由于某种原因,我无法在 Page_Load 上添加默认值。也许是因为数据可能来自数据源?
  • 我可以设置默认值的唯一两个地方是 SaveStateComplete 和 PreRenderComplete。它们都会导致相同的问题。
  • 在Page_Load中你可以这样做,this.DropDownList1.Items.Insert(0, new ListItem("Select a Vendor", ""));在列表上调用 DataBind 之后。
【解决方案3】:

确保事件处理程序正在处理正确的控件,或者按钮标记在其 onclick 元素上引用了正确的方法。

【讨论】:

    【解决方案4】:

    如果您的下拉列表未设置为自动回发,并且您在单击按钮(并触发回发)之前更改了其值,则应该触发下拉列表的 onchange 事件。

    ...不是这解释了为什么你点击处理程序没有触发。

    【讨论】:

    • 下拉列表的自动回发设置为 true。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多