点击事件没有解雇

时间:2013-02-20 09:52:24

标签: c# javascript progress-bar

一旦我将JavaScript代码添加到程序中,按钮OnClick事件没有触发,任何想法为什么会发生这种情况?,我已经通过了进度条的C#代码,当点击它时会加载进度条。我想要知道为什么按钮点击事件没有触发。

HTML和JavaScript代码

            <asp:Button ID="Confirm_btn" CssClass="confirmBtn" runat="server" Text="Generate Presentation" UseSubmitBehavior="true" 
                          ClientIDMode="Static" OnClick = "Confirm_Click" />

                         </td></tr>                          
                     <tr><td colspan="2" align="center">
                        <div id="progressbar" style="width:500px"></div>
                        </td></tr>    
                        </table>
                    </div>

                    <asp:Label ID="error" runat="server" ClientIDMode="Static" 
                        EnableViewState="False" Font-Names="Arial"></asp:Label>                    
                </center>
            </div>     

</asp:Content>
  <asp:Content ID="Content3" ContentPlaceHolderID="ScriptContent" runat="server">
    <script type="text/javascript">
        $.updateProgressbar = function () {
            //Calling PageMethod for current progress
            PageMethods.OperationProgress(function (result) {
                //Updating progress
                $("#progressbar").progressbar('value', result.progress)
                //If operation is complete
                if (result.progress == 100) {
                    //Enable button
                    $("#Confirm_btn").attr('disabled', '');
                }
                //If not
                else {
                    //Reset timer
                    setTimeout($.updateProgressbar, 500);
                }
            });
        };

        $(document).ready(function () {
            //Progressbar initialization
            $("#progressbar").progressbar({ value: 0 });
            //Button click event
            $("#Confirm_btn").click(function (e) {
                e.preventDefault();
                //Disabling button
                $("#Confirm_btn").attr('disabled', 'disabled');
                //Making sure that progress indicate 0
                $("#progressbar").progressbar('value', 0);
                //Call PageMethod which triggers long running operation
                PageMethods.Operation(function (result) {
                    if (result) {
                        //Updating progress
                        $("#progressbar").progressbar('value', result.progress)
                        //Setting the timer
                        setTimeout($.updateProgressbar, 500);
                    }
                });
            });
        });
    </script>
</asp:Content>

ProgressBar的C#代码

/// <summary>
    /// PageMethod for triggering long running operation
    /// </summary>
    /// <returns></returns>
    [System.Web.Services.WebMethod(EnableSession = true)]
    public static object Operation()
    {
        HttpSessionState session = HttpContext.Current.Session;

        //Separate thread for long running operation
        ThreadPool.QueueUserWorkItem(delegate
        {
            int operationProgress;
            for (operationProgress = 0; operationProgress <= 100; operationProgress = operationProgress + 2)
            {
                session["OPERATION_PROGRESS"] = operationProgress;
                Thread.Sleep(1000);
            }
        });

        return new { progress = 0 };
    }

    /// <summary>
    /// PageMethod for reporting progress
    /// </summary>
    /// <returns></returns>
    [System.Web.Services.WebMethod(EnableSession = true)]
    public static object OperationProgress()
    {
        int operationProgress = 0;

        if (HttpContext.Current.Session["OPERATION_PROGRESS"] != null)
            operationProgress = (int)HttpContext.Current.Session["OPERATION_PROGRESS"];

        return new { progress = operationProgress };
    }
}

按钮点击事件的C#代码

protected void Confirm_Click(object sender, EventArgs e)
{
   // my process run here 
}

2 个答案:

答案 0 :(得分:2)

默认情况下,WebForms控件不会发出服务器标记的id属性中存在的确切ID属性。您需要为jQuery选择器使用类似的东西:

$('#<%: Confirm_btn.ClientID %>')

答案 1 :(得分:0)

$("#Confirm_btn").live('click', function (e) {

});

试试这个,肯定有效

否则

$("#Confirm_btn").on('click', function (e) {

});

干杯

Phani *