即使在codeehind中设置了.button(),jQuery UI类也会显示在按钮上

jQuery UI class dissapears on button even though .button() is set in codebehind?

本文关键字:UI jQuery 显示 按钮 codeehind 设置 button      更新时间:2023-09-26

我开始对此感到头疼。

我试图将jQueryUI的按钮外观附加到我的常规按钮上,但它没有被附加。连一节课都没有。。

<asp:UpdatePanel ID="CartUpdPanel" UpdateMode="Conditional" ChildrenAsTriggers="true" runat="server">
    <button runat="server" ID="CheckoutCartButton" CausesValidation="False" EnableViewState="False">Checkout</button>
    <Triggers>
        <asp:PostBackTrigger ControlID="CheckoutCartButton" />
    </Triggers>
</asp:UpdatePanel>

我希望按钮有一个辅助图标。我通常知道如何做到这一点。但是我遇到了问题。。

这是我购物车的结账按钮(在我想让它看起来很漂亮之前,我已经禁用了它),在它后面的代码中,检查你是否有足够的信用来结账,启用/禁用按钮。

我不能在ascx文件中的中创建按钮,因为它会重写按钮的禁用,使其启用:

ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), "disable button", "console.log('disabled'); $('#" + CheckoutCartButton.ClientID + "').button({ icons: { secondary: 'ui-icon-circle-arrow-e' }, disabled: true });", true);

我曾尝试使用updatepanel的id作为控件,但没有进一步成功。在写这篇文章的时候,我认为这是一个页面生命周期问题,因为购物车信用是在Init上检查的。但即使我把它改成了PageLoad,也没什么区别。

有聪明人看到我的问题吗?

您只是附加到了错误的方法。

使用ScriptManager.RegisterStartupScript而不是ScriptManager.RegisterClientScriptBlock

此外,请在脚本中附上$(function () { }),以便在页面完全加载时执行该脚本。

应该能解决你的问题。