Asp.net 在DataGrid中向占位符动态添加按钮

Asp.net 在DataGrid中向占位符动态添加按钮,asp.net,Asp.net,我基本上是这样的: <asp:datagrid id="DGrid" runat="server" AutoGenerateColumns="false"> <asp:TemplateColumn HeaderText="Stuff"> <ItemTemplate> <asp:PlaceHolder id="PH" runat="server" /> </ItemTemplate> </asp

我基本上是这样的:

<asp:datagrid id="DGrid" runat="server" AutoGenerateColumns="false">
  <asp:TemplateColumn HeaderText="Stuff">
    <ItemTemplate> 
      <asp:PlaceHolder id="PH" runat="server" />
    </ItemTemplate>
  </asp:TemplateColumn>
</asp:datagrid>

我需要根据所绑定数据的值向占位符添加一个按钮。目前,我正在将数据绑定到页面加载后添加按钮。问题是在回发中没有调用数据绑定方法,因此当我单击该按钮时,该按钮将消失

有什么建议吗?问题是我需要知道网格项的一些属性才能创建按钮,所以在数据绑定之前我无法创建它。

订阅事件怎么样

标记:

<asp:datagrid id="DGrid" runat="server" OnItemCreated="DGrid_ItemCreated" AutoGenerateColumns="false">...</asp:DataGrid>
更新

关于回发时
e.Item.DataItem
null
的情况:只有可靠的信息(例如数据绑定控件属性)在回发过程中保持不变(如果启用了ViewState),则整个数据项将不复存在。因此,你必须自己管理国家。您只能在ViewState中保留必要的数据(而不能保留整个数据项,因为它可能会破坏它)。

订阅事件怎么样

标记:

<asp:datagrid id="DGrid" runat="server" OnItemCreated="DGrid_ItemCreated" AutoGenerateColumns="false">...</asp:DataGrid>
更新


关于回发时
e.Item.DataItem
null
的情况:只有可靠的信息(例如数据绑定控件属性)在回发过程中保持不变(如果启用了ViewState),则整个数据项将不复存在。因此,你必须自己管理国家。您只能在ViewState中保留必要的数据(而不能保留整个数据项,因为它可能会破坏它)。

我仍然需要以某种方式访问回发中的绑定数据-e.Item.DataItem那时似乎为空。通常e.Item.DataItem为空不是因为ViewState问题,而是因为您正在呈现页眉或页脚行。试着做一个if(e.Item.DataItem is nothing){return;},看看会发生什么。@Patricker:是的,你是对的,但我认为这里不是这样的。。。或者?;-)谢谢,我设法让它工作了。现在,我基本上将一些需要的值保留到ViewState,以便在回发时以相同的方式创建
ItemCreated
中的按钮。我仍然需要以某种方式访问回发中的绑定数据-e.Item.DataItem那时似乎为空。通常e.Item.DataItem为空不是因为ViewState问题,而是因为您正在渲染页眉或页脚行。试着做一个if(e.Item.DataItem is nothing){return;},看看会发生什么。@Patricker:是的,你是对的,但我认为这里不是这样的。。。或者?;-)谢谢,我设法让它工作了。现在,我基本上将一些需要的值保存到ViewState,以便在回发时以相同的方式在
itemscreated
中创建按钮。