如何在代码后文件中编写Javascript
本文关键字:Javascript 文件 代码 | 更新日期: 2023-09-27 18:04:09
下面是我的代码的快照,其中包括从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的行绑定事件中的某些条件显示图像。
注::我知道注册启动脚本和客户端脚本,但我不确定它们如何适合满足我的条件。
如果你想在RowDataBound-event中为gridview的每一项设置JS代码,你可以在ItemTemplate中添加一个hyperlink控件,并将该控件的navigationurl属性设置为JS
<ItemTemplate>
<asp:Hyperlink runat="server" id="lnk" ImageUrl="..."/>
...
</ItemTemplate>
RowDataBound-eventhandler:
...
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 = ...;
}
当然,您也可以使用runat
-Attribute
a
和img
改变你的模板,使用不显眼的javascript
<ItemTemplate>
<button class="imgdiv-button" data-img-id='<%# Eval("ID#") %>'>
<img class="imgdiv" alt="Click" border="0" src="plus.gif" />
</button>
</ItemTemplate>
$(".imgdiv-button").click(function() {
ShowChildGrid($(this).data('img-id'));
});
基本上你想要一个按钮而不是链接(因为它是一个按钮)。您应该将img-id存储在数据属性中