Html
<asp:HyperLinkField DataNavigateUrlFields="PART_NO" DataNavigateUrlFormatString="javascript:GetDetails_NotRelease('{0}')" DataTextField="SumStatus1" HeaderText="未清关" SortExpression="SumStatus1" >
</asp:HyperLinkField >
Code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
DataRowView drv = e.Row.DataItem as DataRowView;
HyperLink Status1HyperLink = e.Row.Cells[INDEX_OF_STATUS1].Controls[0] as HyperLink;
if (Status1HyperLink.Text == "0")
Status1HyperLink.Enabled = false;
else
{
Status1HyperLink.Enabled = true;
}
}
}
画面上有数值,但是不能超连接,为什么啊?
我后来把Code改成
else
{
Status1HyperLink.Enabled = true;
Status1HyperLink.NavigateUrl = "javascript:GetDetails_NotRelease('" + drv["PART_NO"] + "')";
}
就可以了,为什么啊,在Html不能设置超连接么?一定要在Code里写么?
<asp:HyperLinkField DataNavigateUrlFields="PART_NO" DataNavigateUrlFormatString="javascript:GetDetails_NotRelease('{0}')" DataTextField="SumStatus1" HeaderText="未清关" SortExpression="SumStatus1" >
</asp:HyperLinkField >
Code
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex > -1)
{
DataRowView drv = e.Row.DataItem as DataRowView;
HyperLink Status1HyperLink = e.Row.Cells[INDEX_OF_STATUS1].Controls[0] as HyperLink;
if (Status1HyperLink.Text == "0")
Status1HyperLink.Enabled = false;
else
{
Status1HyperLink.Enabled = true;
}
}
}
画面上有数值,但是不能超连接,为什么啊?
我后来把Code改成
else
{
Status1HyperLink.Enabled = true;
Status1HyperLink.NavigateUrl = "javascript:GetDetails_NotRelease('" + drv["PART_NO"] + "')";
}
就可以了,为什么啊,在Html不能设置超连接么?一定要在Code里写么?
举个例子,
<a>link</a>跟<a href="b.aspx">link</a>
自己体会下里面的区别
</asp:HyperLinkField >你在前台 赋值 NavigateUrl 跟后台是一样的
看你的html,明显你没有赋值
function GetDetails_NotRelease(partNo)
{
OpenWindow("./PartNoDialog.aspx?link=PartNoDialog_NotRelease.aspx?PART_NO='" + partNo + "'");
}
function OpenWindow(sUrl)
{
window.open(sUrl,null,"height=700,width=700,resizable=yes,scrollbars=yes,status=no,toolbar=no,menubar=no");
}
而且这样的写法在2003里是可以的