2011-05-13 78 views
0

我有一个相当标准的DataGrid。它包含一些BoundColumns。 我重载这些列之一,以包含文本或LinkBut​​ton,具体取决于绑定项目的某些特征。将LinkBut​​ton添加到ItemDataBound中的DataGrid行中

所以..在ItemDataBound事件的电网,我查了一些东西,或者添加一个Label控件,或LinkBut​​ton控件到适当的细胞。

如果我点击这些了LinkBut​​ton之一,回发发生,但它不调用按钮的事件处理程序的方法。

我看到有些人说,如果你创建控件的PreInit页面事件之后发生的事件将无法正常工作。真的吗?如果是这样,我必须有办法手动将它们连接起来吗?

我曾尝试创建所有在PreInit的按钮,只有加入他们的ItemDataBound这勿庸置疑没有工作。

我听说别人说按钮和每个父控件必须有一个唯一的ID。真的吗?

,而不是在此盲目旋开,我想明白究竟为什么我不能做到这一点。

感谢

回答

1

据我了解,如果你把一个链接按钮DataGrid中,你需要使用RowCommand,即

<asp:LinkButton ID="btnUpdate" CommandName="Something" CommandArgument='<%# Bind("something") %>' runat="server">Update</asp:LinkButton> 

然后,你需要的OnRowCommand事件绑定到函数在你的DataGrid中。这将传递给链接按钮的命令参数和事件参数中命令的名称。您可以使用它来适当地重新采取行动。

+0

应该已经读一位更仔细地 - 的概念同样适用,我认为 - 所以,如果您要添加的按钮programitically你需要可编程设置的CommandName和CommandArgument属性。如果你已经这么做了,那么我们可能需要一些代码。 – Streklin 2011-05-13 14:25:58

+0

我目前没有这样做。这似乎有点奇怪,你需要。我要去看看它。谢谢。 – Erix 2011-05-13 14:28:06

+0

相同的结果 - 回发发生,但设置为commandEventHandler的方法永远不会被调用 – Erix 2011-05-13 14:33:18

相关问题