数据网格中的超链接控件调用javascript
Asp Hyperlink control in datagrid call javascript
我有一个javascript打开页面弹出。现在我需要在数据网格上调用它,所以我添加了asp超链接控件。我在网上搜索并找到了这个例子,但我得到了"服务器标签格式不佳"。我花了很多时间,却不知道如何纠正我的代码。谁能给我指一下。提前谢谢。
我在aspx页面上的代码
<asp:TemplateColumn headertext="Date Received" HeaderStyle-Width="11%" Itemstyle-wrap="False" Visible="true">
<ItemTemplate>
<asp:HyperLink ID="hyTranscript" runat="server" NavigateUrl="#" onclick="javascript:openWin('~/popAddEditReasons.aspx?page=Edit&ID=" & Eval("ID") &"','EditTransfer','width=650,height=325'); return false;")>
<%#DataBinder.Eval(Container.DataItem, "Received_Date", "{0:d MMM yyyy}").ToUpper%>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
如果您不需要服务器端事件,最简单的方法是使用html标签而不是ASP。网络超链接。
下面的代码基本上调用一个外部javascript函数来打开一个窗口。这比在onclick中创建链接要干净得多。<asp:HyperLink ID="hyTranscript" runat="server" NavigateUrl="#"
onclick='<%# string.Format("openWindow('"{0}'");", Eval("ID")) %>'>
<%# Eval("Received_Date", "{0:d MMM yyyy}").ToUpper() %>
</asp:HyperLink>
<!-- I prefer this a tag -->
<a onclick='openWindow("<%# Eval("ID") %>")' href="#">
<%# Eval("Received_Date", "{0:d MMM yyyy}").ToUpper() %>
</a>
<script type="text/javascript">
function openWindow(id) {
// Note: you cannot use ~/ at client side.
var url = "/popAddEditReasons.aspx?page=Edit&ID=" + id;
window.open(url, "EditTransfer", "width=650,height=325");
}
</script>
首先,使用锚标记。服务器控件不是您要找的。您正在尝试将onclick服务器端事件设置为客户端函数。这是错误的。除非您想在服务器端访问这个控件,否则请坚持使用锚标记。
也就是说,onclick事件太复杂了,无法包含在标记中。您应该有一个受保护的函数来回退您正在寻找的文本。像这样。
protected string GetLink(string id)
{
return "javascript:openWin('~/popAddEditReasons.aspx?page=Edit&ID=" + id + "','EditTransfer','width=650,height=325'); return false;";
}
然后更新标记如下:
<a href="#" onclick='<% GetLink(Eval("ID")); %>'>
<%#DataBinder.Eval(Container.DataItem, "Received_Date", "{0:d MMM yyyy}").ToUpper() %>
</a>
这还没有经过测试,但它应该为您指明了正确的方向。
相关文章:
- 使用restangular save方法调用put与post时的控件
- 调用按钮单击事件 ajax 加载的用户控件
- 使用 WinForms GeckoFX 控件从 C# 调用 JavaScript 函数的推荐方法是什么?
- 在滑块控件离开鼠标后调用 Javascript 函数
- 多个控件的javascript函数调用
- 如何使用面向对象的 javascript 从控件调用函数
- 如何在对用户控件执行操作后调用 Web 服务
- 在数据列表控件中调用 jQuery 函数
- 在数据列表控件中调用 jQuery 函数
- 如何从用户控件调用父页面中的 javascript 函数
- 从不同的 .Net 用户控件调用相同的 javascript 函数
- 从用户控件调用 Web 服务时 asp.net 页为 null
- 调用后端时,页面会失去对齐方式,并且需要一些时间来重新对齐控件
- 如何从另一个控件调用 onclick 事件
- Metro Style App:如何从 Web 视图控件中运行的 JavaScript 代码调用 C# 方法
- 如何从 asp.net 超链接控件调用 JavaScript
- 如何从多个控件调用 JS 函数
- 无法为克隆的“选择”控件调用“更改”事件
- 数据网格中的超链接控件调用javascript
- 从flash影片控件调用JavaScript函数