ImageButton事件未在更新面板内触发

时间:2009-02-10 22:08:25

标签: c# asp.net updatepanel

这是我的问题的后续行动:

Asp:Label is not shown when visible is set to true?

在上面的问题中,我有一些控件,其中可见性未被设置为false,因为它们不在UpdatePanel中。一旦我将控件放在UpdatePanel内,可见性的切换就起作用了,但这引起了另一个问题。我有一个ImageButton导出到excel。当按钮不在UpdatePanel时,点击事件被触发,但现在我将其放在UpdatePanel内,点击事件不会触发。

我也有一个下拉列表工作正常。我认为它与ImageButton没有AutoPostBack属性这一事实有关。

8 个答案:

答案 0 :(得分:2)

我遇到了类似的问题。就我而言,ImageButtons位于转发器内,该转发器绑定到updatepanel。但是我在转发器的Page.RegisterRequiresRaiseEvent(ImageButton)方法中的代码中使用了ItemDataBound并且它有效。

答案 1 :(得分:2)

ChildrenAsTriggers="true"添加到您的更新面板。如果您有母版页,则可以使用。

如果您的更新面板位于主控制中,则无法添加触发器。

答案 2 :(得分:1)

确保已将图像按钮与UpdatePanel上的PostBackTrigger相关联。如果使用类似于Matt Berseth's method的内容导出到Excel,则必须使用此触发器才能使导出生效。

<asp:PostBackTrigger ControlID="ImageButton1"/>

答案 3 :(得分:1)

如果在itemTemplate中有一个带有图像按钮的数据列表,则不需要触发器,但causeValidation = false是。

答案 4 :(得分:0)

不,ImageButtons没有AutoPostBack:他们不需要它们比普通按钮更多。

这种行为听起来很奇怪。我要说的第一件事就是将asp:ImageButton更改为asp:Button,看看是否会改变行为。如果没有,它是一个ImageButton的事实是一个红色的鲱鱼。

答案 5 :(得分:0)

尝试用菜单(包含单个菜单项)替换图像按钮并设置其imageurl属性。

答案 6 :(得分:0)

myImagebutton.OnClientClick = "return true;";

答案 7 :(得分:0)

将'CausesValidation'属性更改为false。