ASP: UpdatePanel - Добавить JavaScript при нажатии кнопки - PullRequest
2 голосов
/ 31 марта 2012

У меня есть asp:UpdatePanel с asp:Button и asp:TextBox:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:Button runat="server" Text="Click" ID="button" onclick="button_Click"/>
        <asp:TextBox runat="server" Title="Text" ID="text" Style="margin-top: 50px;" />
    </ContentTemplate>
</asp:UpdatePanel>

И метод button_Click:

protected void button_Click(object sender, EventArgs e) {
    text.Attributes.Add("title", "Box");
    ClientScript.RegisterClientScriptBlock(typeof(ScriptManager), "Tooltify", "tooltipfy();", true);
}

tooltify()функция JavaScript.

var tooltipfy = function () {
    alert('');
    $('[title]').qtip({
        style: {
            tip: {
                corner: true,
                width: 10,
                height: 5
            },
            classes: 'ui-tooltip-rounded ui-tooltip-shadow ui-tooltip-tipsy'
        },
        position: {
            my: 'bottom left',
            at: 'top right',
            adjust: {
                x: -10,
                y: 0
            }
        },
        events: {
            show: function (event, api) {
                $('.ui-tooltip-content').addClass('ui-tooltip-center');
            }
        },
        show: {
            effect: function (offset) {
                $(this).show("slide", { direction: "up" }, 500);
            }
        },
        hide: {
            effect: function (offset) {
                $(this).hide("explode", 500);
            }
        }
    });
}

Проблема заключается в том, что функция не выполняется.

Как вызвать функцию JavaScript при использовании asp:UpdatePanel?

Ответы [ 3 ]

4 голосов
/ 31 марта 2012

Вы должны использовать ScriptManger при использовании UpdatePanel.

protected void button_Click(object sender, EventArgs e) {

    ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"Tooltify", "tooltipfy();", true);
}
2 голосов
/ 31 марта 2012

У меня нет возможности проверить это сейчас, но согласно этому блогу вы должны заставить его работать с ScriptManager.RegisterStartupScript.

0 голосов
/ 22 февраля 2016

использование ClientScript.RegisterClientScriptBlock не является хорошей практикой.Если ваша функция Javascript (tooltipfy) должна обновлять некоторые элементы управления, вы должны поместить эти элементы управления под asp:UpdatePanel и обновить их в своем коде так:

someDiv.Style.Add("display", "inline");
someDiv.InnerHtml = Text;
otherControl.Style.Add("display", "block");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...