c# - 如何在代码隐藏文件中编写 Javascript?

标签 c# javascript .net asp.net visual-studio

下面是我的代码的快照,其中包括从 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 的行数据绑定(bind)事件中的某些条件显示图像。

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

最佳答案

如果你想在 RowDataBound-event 中为 gridview 的每个项目设置 JS 代码,你可以添加一个 Hyperlink-control 到你的 ItemTemplate 并将这个控件的 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 = ...;
}

当然你也可以使用aimg使用runat-Attribute

关于c# - 如何在代码隐藏文件中编写 Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6872482/

相关文章:

javascript - URIencode 和冒号

c# - 防止多次处理对象

.net - Funq IoC Container 是否支持属性注入(inject)?

C# - 带有 aspx 页面的 Web 服务

c# - 用于测试的公共(public)事件目录

c# - 在 Web 浏览器控件中抓取 Cookie - WP7

c# - Windows 窗体设计建议

javascript - 页面中脚本标记的位置如何影响其中定义的 JavaScript 函数?

javascript - 在 javascript 中显示按钮并打印变量

c# - 使用 CSS 设置 GridView 格式