阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

DataGrid中多个参数的超链接列

Posted on 2008-11-05 13:50  宽田  阅读(612)  评论(0编辑  收藏  举报
.net 自带的DataGrid 超链接列只能指定一个动态参数, 可以通过以下方式来改进:

第一种:后台再绑定:

private void mygrid_ItemDataBound(object sender, DataGridItemEventArgs e)
  {
   
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
   {
    HyperLink link  
= (HyperLink)e.Item.Cells[0].Controls[0]; 
   
    
string url = link.NavigateUrl;
    url 
+= "?id=" + e.Item.Cells[1].Text + "&id2=" + e.Item.Cells[2].Text;
    link.NavigateUrl 
= url;
   }
  }

 第二种:前台增加模板列:

<asp:TemplateColumn HeaderText="test">
       
<ItemTemplate>
        
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.productID") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.productName", "detailspage.aspx?id={0}&id2="+DataBinder.Eval(Container, "DataItem.productID")) %>'>
        
</asp:HyperLink>
       
</ItemTemplate>

 或

<asp:TemplateColumn>
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#String.Format("show.aspx?str={0}&mat={1}",DataBinder.Eval(Container.DataItem,"supplier_id"),DataBinder.Eval(Container.DataItem,"material_po")) %>'>打开</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>

 

 

转自:http://blog.csdn.net/downmoon/archive/2005/07/11/420941.aspx