在asp:Image

时间:2016-05-04 16:20:36

标签: c# jquery asp.net twitter-bootstrap popover

我已经搜索过,但尚未发现这个确切的问题。我试图在Bootstrap Popover中放置一个超链接。如果它只是一个静态链接,我会看到如何做到这一点。但是,这是服务器端链接按钮。以下是我想要完成的事情。显然我不能在另一个控件中使用ASP控件。有没有办法可以在代码隐藏中创建链接并传递到asp:image或者有没有办法将链接按钮放在隐藏的div中并将其用作popover的数据内容?

<asp:Image ID="disp_icon" runat="server" data-toggle="popover" 
  data-html="true" ImageUrl="~/images/ico_info.png" 
  ToolTip="Discipline" data-content="You may contact us 
  at 555.555.5555 or use the <asp:LinkButton ID="requestHistory_LinkButton" 
  runat="server" OnClick="showRequestHistoryForm_LinkButton_Click">
  history form</asp:LinkButton> to confirm the entire public record." />

尝试1:

我正在尝试这个,因为那里的所有样本都显示出来,它应该有效:

        $(".discipline_icon").popover({
            title: function () {
                return $('.disciplineIconContent').html();
            },
            content: function () {
                return $('.disciplineIconContent').html();
            }
        });
        alert($('.disciplineIconContent').html());

...

<div class="disciplineIconContent" style="display:none;">You may contact the State Bar of Arizona at 602.340.7384 or use the <asp:LinkButton ID="requestHistory_LinkButton9" runat="server" CssClass="lawyerURL" OnClick="showRequestHistoryForm_LinkButton_Click" Font-Bold="True" Font-Underline="True">lawyer history form</asp:LinkButton> to confirm the lawyer's entire public record.</div>

警告显示我正确获取div的内容。但由于某种原因,即使我将其分配给内容,它也永远不会出现。

3 个答案:

答案 0 :(得分:0)

你必须让链接认为它是静态的,并在代码后面调用一些代码来代替URL。

例如

    <a href='<% GetLinkURL() %>'>History Form</a>

答案 1 :(得分:0)

你是对的;你不能将LinkBut​​ton放在数据内容中。但是,您可以手动触发LinkBut​​ton的Click事件。这是一种黑客行为。

实施例,

<asp:Image ID="disp_icon" runat="server"
    data-html="true"
    data-toggle="hover"
    ImageUrl="~/images/ico_info.png"
    ToolTip="Discipline"
    data-content="You may contact us at 555.555.5555 or use the <a id='linkRequestHistory' onclick='postHistoryForm();'> history form</a> to confirm the entire public record." />

<asp:LinkButton ID="requestHistory_LinkButton"
    runat="server" OnClick="showRequestHistoryForm_LinkButton_Click" CssClass="hidden">
</asp:LinkButton>

<style type="text/css">
    .hidden {
        display: none;
    }
</style>

<script type="text/javascript">

    $("#<%= disp_icon.ClientID %>").popover();

    function postHistoryForm() {
        __doPostBack("<%= requestHistory_LinkButton.ClientID %>", "");
    }

</script>

答案 2 :(得分:0)

好的,我似乎有一个有效的解决方案。我想我正在创建弹出窗口或初始化两次的问题。我删除了这个特定元素的data-toggle =“popover”,因为我单独附加了它。然后我可以将我的HTML放在隐藏的div中。

        $('.discipline_icon').popover({
            placement: "auto",
            trigger: "hover click focus",
            html: true,
            title: "Discipline",
            content: $(".disciplineIconContent").html()
        })

。 。 。

<div class="disciplineIconContent hidden">
    You may contact us at 555.555.5555 or use the 
    <asp:LinkButton ID="requestHistory_LinkButton" runat="server" 
      OnClick="showRequestHistoryForm_LinkButton_Click">history form</asp:LinkButton> 
    to confirm the entire public record.</div>