AJAX Cursor - Sharepoint Visual Webpart

时间:2013-04-01 18:49:58

标签: javascript asp.net ajax sharepoint web-parts

创建自定义SharePoint 2010 webpart。

我是AJAX的新手,所以请帮助我。

任何人都可以给我一步一步的程序来执行以下操作:

开启按钮点击:

  1. 禁用按钮

  2. 显示等待屏幕/等待动画/沙漏光标

  3. 做很长的工作。

  4. 在文本框中显示作业已成功完成。

  5. 为了让我更容易理解,我将在下面发布我的代码:

    以下是我的VisualWebPart.ascx文件:

    <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 
    <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@ Import Namespace="Microsoft.SharePoint" %> 
    <%@ Register Tagprefix="WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="VisualWebPart1.ascx.cs" Inherits="AE_Project_Form.VisualWebPart1.VisualWebPart1" %>
    
    <style type="text/css">
    .auto-style1 {
            width: 26%;
            height: 248px;
        }
    
    .wait{
            cursor:wait;
        }
    </style>
    
    <script type="text/javascript">
         function ShowCursor() {    
    document.getElementById('btn_Submit').disabled = true;
    $(this).addClass("wait");    
         }
    </script>
    
    <table class="auto-style1">
    <tr>
    <td class="auto-style4" colspan="2">
    <asp:Button ID="btn_Submit" runat="server" OnClick="btn_Submit_Click" Text="Submit" Width="97px" Height="20px" />
    </td>
    </tr>
    

    现在我的VisualWebPart.ascx.cs文件如下所示:

    using System;
    using System.ComponentModel;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Data.SqlClient;
    using Microsoft.SharePoint;
    using Microsoft.SharePoint.Publishing;
    using System.Data;
    
    
    namespace AE_Project_Form.VisualWebPart1
    {
        [ToolboxItemAttribute(false)]
        public partial class VisualWebPart1 : WebPart
    {
    public VisualWebPart1()
            {
            }
    
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
                InitializeControl();
    
            }
    protected void Page_Load(object sender, EventArgs e)
            {
                this.btn_Submit.Attributes.Add("onClick", "ShowMessage()");
    }
    protected void btn_Submit_Click(object sender, EventArgs e)
            {
    //Do a long process including some Database updates etc...
    
    
    //Just show a MSGBOX saying process completed 
    
    Type cstype = this.GetType();
    ClientScriptManager cs = Page.ClientScript;
    if (!cs.IsStartupScriptRegistered(cstype, "PopupScript"))
    {
     String cstext = "alert('Successfully Added  Project');";
    cs.RegisterStartupScript(cstype, "PopupScript", cstext, true);
     }
    
    }
    }
    

    现在我想要webpart做的是点击一个按钮时:

    1. 禁用按钮并启动等待光标

    2. 执行长数据库流程

    3. 完成漫长过程后,会显示一个消息框,表示该过程已完成。

    4. 但是发生的事情是按钮没有被禁用,也没有看到等待光标。长处理器需要很长时间,只显示最终消息框。

      我在某处对Javascript C#webpart编码的理解是错误的吗?

1 个答案:

答案 0 :(得分:0)

我在这里的讨论得到了答案: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopmentprevious/thread/09f6e65c-5d8c-4516-81f1-f48c21d20ef0/?prof=required

请看杰克的最后回复......这对我有用,谢谢......