方案一:简单的方法,新窗口不固定大小
<asp:HyperLinkField HeaderText="姓名" Text="姓名" DataNavigateUrlFields="姓名" DataNavigateUrlFormatString="Default6.aspx?GoodsID={0}" Target="mainframe" NavigateUrl="~/Default6.aspx" DataTextField="姓名" >
</asp:HyperLinkField>
方案二:精确控制弹出窗口大小位置
<asp:HyperLinkColumn DataNavigateUrlField="EmployeeID" DataNavigateUrlFormatString="javascript:varwin=window.open('detail.aspx?ID={0}',null,'width=300,height=200');window.Close();"
DataTextField="LastName" HeaderText="LastName">
</asp:HyperLinkColumn>
一、用 <asp:HypeLinkField />
我试了很久不能成功,主要存在的问题是:HypeLink是服务控件,那它没有onclick事件。
但是肯定是可以实现的,非常麻烦我就不专研了。
网上的代码是这样的我没测试过:
<asp:HyperLinkField HeaderText="添加信息" />
<%-- GridView中第六列--%>
<asp:HyperLinkField HeaderText="看明细" />
<%-- GridView中第七列--%>
protected void gv****_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string JS = "*****Add.aspx?id=" + e.Row.Cells[7].Text.ToString() + "&type=" + e.Row.Cells[4].Text.ToString();// +"&name=" + e.Row.Cells[1].Text.ToString() + "&code=" + (e.Row.Cells[0].Controls[0] as HyperLinkField).Text.ToString();
e.Row.Cells[5].Text = "<a href=/"javascript:/" οnclick=/"javascript:var *****Add = window.open('" + JS + "','添加','top=150,left=200,toolbar=no, menubar=no,scrollbars=yes, resizable=no, location=no,
status=no, width=600,height=300');addBuyAccount.focus(0); /">添加信息</a>";
e.Row.Cells[6].Text = "<a href=/"javascript:/" οnclick=/"javascript:var *****List= window.open('*****List.aspx?id=" + e.Row.Cells[7].Text.ToString() + "','查看','top=150,left=50,toolbar=no, menubar=no,scrollbars=yes, resizable=no, location=no,
status=no, width=850,height=400');payAccountList.focus(0);/">查看明细</a>";
}
}
看样子是没问题的。
另外一种简单的方法:
二、只好使用模板
<asp:TemplateField HeaderText="标题">
<ItemTemplate>
<a href="#" οnclick="window.location.reload();window.open('MsgShow.aspx?id=<%# Eval("N_ID") %>','','location=0,menubar=0')"><%# LengthTo30(Eval("N_Title").ToString()) %></a>
</ItemTemplate>
</asp:TemplateField>