下面是我的代码的快照,其中包含从gridview的项目模板中获取的
javascript.它还具有图像控件.
<ItemTemplate> <a href="javascript:ShowChildGrid('div<%# Eval("ID#") %>');"> <img id="imgdiv<%# Eval("ID#") %>" alt="Click" border="0" src="plus.gif" /> </a> </ItemTemplate>
JS函数将参数作为ID.现在我如何在代码隐藏文件中编写JS?
这是必要的,因为我需要根据gridview的行数据绑定事件中的某些条件显示图像.
P.S.:我知道注册启动脚本和客户端脚本,但我不确定它们如何适应我的条件.
解决方法
如果要在RowDataBound-event中为gridview的每个单项设置JS代码,可以在ItemTemplate中添加一个Hyperlink-control,并将该控件的NavigationUrl-property设置为JS.
<ItemTemplate> <asp:Hyperlink runat="server" id="lnk" ImageUrl="..."/> ... </ItemTemplate>
的RowDataBound-事件处理程序:
... if (e.Row.RowType != DataControlRowType.DataRow) return; string js = String.Format("javascript:ShowChildGrid('div{0}');",rowId); var lnk = e.Row.FindControl("lnk") as Hyperlink; if(lnk!=null) { lnk.NavigationUrl = js; lnk.ImageUrl = ...; }
当然,您也可以使用a和img使用runat-Attribute