日期:2014-05-18  浏览次数:20449 次

GridView里如何调用JS的函数
有一个JS函数作用是实现一个弹出窗口,类似window.open,但是有区别
<html> 
<head> 
<title>新建网页 1</title> 
<SCRIPT src="winforms.js" type=text/javascript></SCRIPT> 
</head> 
<body> 
<script language="javascript"> 
//使用方法程序生成窗口
newForm(1,1,650,400,"<font color='#FFFFFF'>我的第一个FORM</font>","#0F70C7","myform",1); 
myform.setIco("img/ico_wnd0.gif"); 
myform.setCenter(); 
myform.setOpacity(70); 
myform.setModuleON(40); 
myform.closeButton=myform.hide; //防止窗口释放
myform.setSrc("http://www.baidu.com/"); //弹出窗体里加载的内容
</script> 

<a href="#" onClick="myform.show();">NewWin</a>
================
现在问题是如何在GridView的超级链接列如何现实呢?

------解决方案--------------------
asp:HyperLinkField控件是不支持onclick属性的,所以即使在后台绑定时
找到这个control也没法按通常做法给它的attribute加上onclick;
假设这个HyperLinkField在gridview的第一列
一个退一步的解决方法是将onclick绑定在包含HyperLinkField的td上,这种做法导致
点击整个td都会弹出窗口,做法
 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Attributes.Add("onclick", "myform.show();");
}
 }
另一个不太建议的做法是将解析后前台要显示的代码读出来,自己控制给它加上
onclick="myform.show();" ,也就是把e.Row.Cells[0].Text加上onclick

其实我觉得要实现这样的功能只要用模版列里面放个HtmlAnchor就可以了