<asp:TemplateColumn HeaderText="产品名称">
  <ItemTemplate>
    <HeaderStyle Width="17%"></HeaderStyle>
    <asp:HyperLink ID=hlkProductName NavigateUrl="edit.aspx?id=<%# DataBinder.Eval(Container, "DataItem.ProductId") %>" Runat=server><%# DataBinder.Eval(Container, "DataItem.ProductName") %></asp:HyperLink>
  </ItemTemplate>
</asp:TemplateColumn>如上,现在要在cs文件中读取该列的值,找了好多资料,还是不知道该如何读,拜访各位帮忙看一下!

解决方案 »

  1.   

    foreach(DataGridItem item in DataGrid1.Items)
    {
    HyperLink link= (HyperLink )item.FindControl("hlkProductName ");
    string name = link.Text;
    }
      

  2.   

    francsescoli(我爱世界杯) :
    我在datagrid中使用<asp:HyperLink></asp:HyperLink>后,在浏览器查看时,又被告知:不可识别的格式,不能用<asp:HyperLink>..............
    我用的是VS2003如果用<asp:HyperLinkColumn HeaderText="产品名称" DataTextField="ProductName" DataNavigateUrlFormatString="edit.aspx?id={0}" DataNavigateUrlField="ProductId"></asp:HyperLinkColumn>时,用e.Item.Cells[2].Text也无法取值,如果要用FindControls,却无法设置Id属性
      

  3.   

    foreach(DataGridItem item in DataGrid1.Items)
    {
    HyperLink link= (HyperLink )item.Cells[**].FindControl("hlkProductName ");
    string name = link.Text;
    }
      

  4.   

    方法很多
    1. 在前面加入一个隐藏列><%# DataBinder.Eval(Container, "DataItem.ProductName") %>
        用DataGrid1.SelectedItem.Cells[0].Text;取
    2. 设置主键,用DataGrid1.DataKeys[e.Item.ItemIndex].ToString();取
    还有就是上面的
      

  5.   

    刚才一试
    Response.Write(((HyperLink)DataGrid1.Items[0].FindControl("hlkProductName")).Text);
    这样取不到,不知道为什么,可能是不允许这样取值可以用楼上ziyeping(ziyeping)的方式实现
      

  6.   

    foreach(DataGridItem item in DataGrid1.Items)
    {
    HyperLink link= (HyperLink )item.FindControl("hlkProductName ");
    string name += link.Text+'/';
    }
    这个肯定没问题是把所有的值都列了