我有一个相当标准的DataGrid。它包含一些BoundColumns。 我正在重载其中一列以包含文本或LinkButton,具体取决于绑定项的某些特征。
所以..在Grid的ItemDataBound事件中,我检查了一些内容,并将Label Control或LinkButton Control添加到正确的Cell中。
如果我点击其中一个LinkButtons,就会发生回发,但它不会在按钮的事件处理程序中调用该方法。
我看到有人说如果在PreInit页面事件之后创建控件,事件将无效。真的吗?如果是这样,我必须有一种方法可以手动连接它们吗?
我已尝试在PreInit中创建所有按钮,并且只在ItemDataBound中添加它们,这无疑不起作用。
我听过其他人说按钮和每个父控件都必须有唯一的ID。这是真的吗?
我不想盲目地摆脱这一点,而是想明白为什么我不能这样做。
由于
答案 0 :(得分:1)
据我了解,如果在DataGrid中放置一个链接按钮,则需要使用RowCommand,即
<asp:LinkButton ID="btnUpdate" CommandName="Something" CommandArgument='<%# Bind("something") %>' runat="server">Update</asp:LinkButton>
然后,您需要将OnRowCommand事件绑定到DataGrid中的函数。这将传递给予链接按钮的命令参数和事件参数中的命令名称。您可以使用它来重新适应该事件。