【发布时间】:2012-07-09 13:05:07
【问题描述】:
您好,我遇到了一个非常奇怪的问题。我有一个 ImageButton 和 Gridview,它们都是在运行时创建的。图像按钮是 web 表单上的一个单独控件,无论如何都没有链接到 Gridview。我想要实现的是当用户在 GridView 中完成对一行的编辑并单击更新行按钮时,我对输入的输入执行一组计算。如果在输入的数据中发现错误,然后我会显示 ImageButton,单击该按钮会显示错误消息。我用来显示或隐藏图像按钮的功能
picCross.Style.Value = "显示:无;"
和
picCross.Style.Value = "显示:块;"
在 Page.PreRender 函数上调用。我发现我能够在 GridView 未触发的回发期间更改 ImageButton(更改按钮的工具提示,设置其样式的值),例如当用户单击 Web 表单上其他位置的按钮时.但是,如果我尝试在 GridView 的回发事件期间更改 Imagebutton,例如当用户单击编辑行或更新行按钮/链接时。未保存更改。更奇怪的是我对标签没有这样的问题。无论是否在 Gridview 控件触发的回发期间进行了更改,我都可以更改标签的文本。
我尝试将 ImageButton 的 EnableViewState 设置为 true 和 false,但两者都没有区别。我在面板上尝试了相同的方法并且发生了同样的事情,在由 gridview 引起的回发期间我无法更改其属性。我的 GridView 有 EnableViewState = True
P.S 我也在运行时绑定了 GridView。只有我的 GridView 的 RowUpdating 事件会触发。 RowUpdated 事件不会触发。我希望尝试更改 RowUpdated 上的 ImageButton,但我并不认为它会产生很大的不同。
【问题讨论】:
-
为什么不使用 ImageButton 的 Visibe 属性?也许您可以使用 CustomValidator 来实现此检查并使此图像按钮可见。
-
我也无法更改 ImageButton 的可见属性。就好像我在 GridView 触发的回发事件期间更改的 ImageButton 是一个缓存副本。我可以通过断点看到它正确设置了 ImageButton 属性,但是一旦页面完全加载,更改就不存在了。我的 ImageButtons 是外部的,与我的 GridView 无关,这让我感到困惑,但我可以在 GridView 回发事件期间更改标签的属性,没有任何问题......
标签: asp.net vb.net gridview tooltip imagebutton