我所说的“this”是下面 createDiv 函数调用的第一个参数。所以基本上是点击了 LinkButton。
<asp:LinkButton ID="btn_ReportReply1" runat="server" class="btn btn-danger btn-xs" Text="ReportReply" OnClientClick='<%# String.Format("createDiv(this," + Eval("UniqueNo") +","+ Eval("CommentSeqNo") + "," + Eval("UserNo") + ", \"{0}\");", Eval("LoginID")) %>' ></asp:LinkButton>
现在我想要对“这个”按钮执行的操作是调用 Bootstrap .popover() 。因此,下面我尝试获取 btn 的 ClientID 并执行 .popover() 但红色下划线显示在 btn.ClientID 下。我无法使用按钮的类,因为有多个按钮具有相同的类。
function createDiv(btn, ReplyNo, CommentSeqNo,ReportedUserNo, LoginID) {
$('#' + '<%= btn.ClientID %>').popover({
trigger: 'manual',
placement: 'left',
content: vType + vContent
});
$('#' + '<%= btn.ClientID %>').popover("show");
}
最佳答案
OnClientClick
在 DOM 对象上呈现为 onclick
。该范围内的 this
是 DOM 对象本身,因此您可以使用 btn.id
来获取 ClientID
或简单地使用 $ (btn)
在你的函数中。
这是一个示例:
标记
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="Scripts/jquery-1.7.1.js"></script>
<script type="text/javascript">
function createDiv(btn) {
$(btn).text($(btn).attr('id'));
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater runat="server" ID="List">
<ItemTemplate>
<div>
<asp:LinkButton ID="thisIsMyId" Text="<%# Container.DataItem %>" runat="server" OnClientClick="createDiv(this); return false;" />
</div>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
隐藏代码
using System;
namespace WebApplication1
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
List.DataSource = new string[] { "TEST1", "TEST2" };
this.DataBind();
}
}
}
关于javascript - 如何访问 'this' 控件的 clientID 或者在 jscript 中执行 Bootstrap 的 .popover(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30650435/