.net 自带的DataGrid 超链接列只能指定一个动态参数, 可以通过以下方式来改进:
第一种:后台再绑定:
private
void
mygrid_ItemDataBound(
object
sender,DataGridItemEventArgse)
... {
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
... {
HyperLinklink = (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)
... {
HyperLinklink = (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:TemplateColumnHeaderText
=
"
test
"
>
< ItemTemplate >
< asp:HyperLinkrunat = " 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:HyperLinkrunat = " 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 >