动态指定DataGrid中多个参数的超链接列(downmoon)
.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;
}
}
{
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>
<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>