如何在代码后文件中编写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的行绑定事件中的某些条件显示图像。

注::我知道注册启动脚本和客户端脚本,但我不确定它们如何适合满足我的条件。

如何在代码后文件中编写Javascript

如果你想在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

使用aimg

改变你的模板,使用不显眼的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存储在数据属性中