向导的下一步按钮连接jQuery

时间:2012-10-16 05:49:10

标签: jquery asp.net updatepanel

如何在页面上尚未呈现的控件上连接jQuery?我尝试重写以下方法,但它们不起作用StepNavigationTemplateContainerID html标记尚未在此事件上可用:Render,OnLoad,OnInit等

可能是因为我正在使用UpdatePanel吗?当我使用UpdatePanel时,我可以覆盖什么方法/事件,所以我可以在那里发出jQuery钩子?

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);

    HookNextButton();
}       



void HookNextButton()
{
    string nextButtonClientId = wizardCooking.FindControl("StepNavigationTemplateContainerID").FindControl("btnNextStep").ClientID + "_lnkButton";
    var scriptKey = "Yo";

    string theScript =
        string.Format(
    @"
                    $(function() {{      


                        $('#{0}').click(function() {{
                            alert('hi');

                        }});

                    }});
                ", nextButtonClientId);
    Type cstype = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, scriptKey))
    {
        ScriptManager.RegisterStartupScript(
                this, this.GetType(), scriptKey, theScript, true);
    }


}

1 个答案:

答案 0 :(得分:3)

使用.on()委托它。 这将确保事件与稍后将插入DOM的元素相关联。

$('body').on('click' , '#buttonid' , function() {
    // Your code here
    // This will handle the case of buttons that 
    // will be rendered later

});