在ItemDataBound中将LinkBut​​tons添加到DataGrid行

时间:2011-05-13 14:19:25

标签: c# asp.net c#-4.0 asp.net-4.0

我有一个相当标准的DataGrid。它包含一些BoundColumns。 我正在重载其中一列以包含文本或LinkBut​​ton,具体取决于绑定项的某些特征。

所以..在Grid的ItemDataBound事件中,我检查了一些内容,并将Label Control或LinkBut​​ton Control添加到正确的Cell中。

如果我点击其中一个LinkBut​​tons,就会发生回发,但它不会在按钮的事件处理程序中调用该方法。

我看到有人说如果在PreInit页面事件之后创建控件,事件将无效。真的吗?如果是这样,我必须有一种方法可以手动连接它们吗?

我已尝试在PreInit中创建所有按钮,并且只在ItemDataBound中添加它们,这无疑不起作用。

我听过其他人说按钮和每个父控件都必须有唯一的ID。这是真的吗?

我不想盲目地摆脱这一点,而是想明白为什么我不能这样做。

由于

1 个答案:

答案 0 :(得分:1)

据我了解,如果在DataGrid中放置一个链接按钮,则需要使用RowCommand,即

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

然后,您需要将OnRowCommand事件绑定到DataGrid中的函数。这将传递给予链接按钮的命令参数和事件参数中的命令名称。您可以使用它来重新适应该事件。