.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 >