在动态绑定中注册事件后,我如何在事件中获取该DataGrid中e.Item的DataKeys???前台
<asp:DataGrid id="Recoder_DataGrid" DataKeyField="ContentID" ....
   <Columns>
      <asp:TemplateColumn>
          <ItemTemplate>
             <asp:LinkButton id="Detial_LinkButton" ForeColor="#ff6600" runat="server">[详细介绍]</asp:LinkButton>
           </ItemTemplate>
       </asp:TemplateColumn>
   </Columns>
  ..............后台
private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
LinkButton lb_Detail=(LinkButton)e.Item.FindControl("Detial_LinkButton");
lb_Detail.Click+=new EventHandler(lb_Detail_Click);
}
}private void lb_Detail_Click(object sender, EventArgs e)
{
string Pic_ID=?????  //这时怎么写?
Response.Redirect("Pic_Show.aspx?Pic_ID="+Pic_ID);
}  不知道这个 Pic_ID 怎么样才能得到 DataGridk中的ContentID的对应项的值
请大家指教一下!

解决方案 »

  1.   

    前台
    <asp:DataGrid id="Recoder_DataGrid" DataKeyField="ContentID" ....
       <Columns>
          <asp:TemplateColumn>
              <ItemTemplate>
                 <asp:LinkButton id="Detial_LinkButton" ForeColor="#ff6600" runat="server" CommandName="cmdDetail">[详细介绍]</asp:LinkButton>
               </ItemTemplate>
           </asp:TemplateColumn>
       </Columns>
      ..............
    后台private void DataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if (e.CommandName="cmdDetail")
    {
      string string Pic_ID = e.Item.Cells[0].Text;
      Response.Redirect("Pic_Show.aspx?Pic_ID="+Pic_ID);
    }
    }
      

  2.   

    上面的代码在
    <ItemTemplate>
        <asp:LinkButton id="Detial_LinkButton" ForeColor="#ff6600" runat="server" CommandName="cmdDetail">[详细介绍]</asp:LinkButton>
    </ItemTemplate> 前追加一行<asp:BoundColumn DataField="ContentID" Visiable="False"></asp:BoundColumn>