asp.net customdatagrid 绑定数据用到的ItemDataBound 中的HyperLinkColumn 的跳转链接 通过C#后台 处理的方法

一.前台html代码:

<tittle:CustomDataGrid ></ItemStyle>

</asp:HyperLinkColumn>

</Columns>

</tittle:CustomDataGrid>

二、C#后台处理:

protected void grdResult_ItemDataBound(object sender, DataGridItemEventArgs e)

{

if (e.Item.ItemType == ListItemType.Pager|| e.Item.ItemType == ListItemType.Header

|| e.Item.ItemType == ListItemType.Footer) //判断是否为页眉,页脚

{

return;

}

else

{

HyperLink link = (HyperLink)e.Item.Cells[4].Controls[0];//第3行HyperLinkColumn对象

link.NavigateUrl = string.Format("javascript:window.location('{0}.aspx?Master);", e.Item.Cells[3].Text, e.Item.Cells[2].Text);

//e.Item.Cells[3].Text 为url路径,前台对应为:<asp:BoundColumn Visible="False" DataField="Url"></asp:BoundColumn> Visible="False"为不可见

//e.Item.Cells[2].Text 为ID 前台对应为:<asp:BoundColumn Visible="False" DataField="InvoiceId"></asp:BoundColumn>

}

}

//大家也可以试试用这个:

if (e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)

{

HyperLink link = (HyperLink)e.Item.Cells[4].Controls[0];//第3行HyperLinkColumn对象

link.NavigateUrl = string.Format("javascript:window.location('{0}.aspx?Master);", e.Item.Cells[3].Text, e.Item.Cells[2].Text);

//e.Item.Cells[3].Text 为url路径,前台对应为:<asp:BoundColumn Visible="False" DataField="Url"></asp:BoundColumn> Visible="False"为不可见

//e.Item.Cells[2].Text 为ID 前台对应为:<asp:BoundColumn Visible="False" DataField="InvoiceId"></asp:BoundColumn>

}

注意:千万不要在ItemDataBound里面存在查询数据库的方法,因为会执行很多遍,不合理。