我想,當我點擊網頁(asp.net網站)按啓動鍵啓動進程現在我想設置進程啓動標籤文本。當過程結束時,我想將標籤文本設置爲「處理已完成」。如何在asp.net和C#中做到這一點。如何在網站的過程結束時顯示消息?
在此先感謝。
我想,當我點擊網頁(asp.net網站)按啓動鍵啓動進程現在我想設置進程啓動標籤文本。當過程結束時,我想將標籤文本設置爲「處理已完成」。如何在asp.net和C#中做到這一點。如何在網站的過程結束時顯示消息?
在此先感謝。
使用JavaScript做回調。並在每個階段;啓動,完成或錯誤;更新你的HTML標籤。如果您使用jQuery AJAX查找一些示例,這應該相當簡單。
在代碼隱藏補充一點:
ScriptManager.RegisterStartupScript(this, GetType(), "Records Inserted Successfuly", "Showalert();", true);
JAVASCRIPT在源代碼中添加這個(CSS):
function Showalert() {
alert('Records inserted Successfully!');
}
,做使用的System.Web.UI增加;
OR
您可以將標籤簡單地添加到像這樣的ASPX網頁表單..
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
和代碼隱藏aspx.cs加..
Labelname.Text = "whatever msg you wanna display."
我編輯了我的答案,告訴我你是否仍然有任何問題..! – Arbaaz 2013-03-05 13:15:35
如果你不想使用javascript ...你可以做的是當按鈕點擊事件被觸發時首先改變標籤文本。
lblLabel.text="process started"
和button_click最後一行的事件應該是這樣的:
lblLable.text="process completed";
你可能要考慮使用ASP.NET SignalR。下面是它做什麼摘要:
ASP.NET SignalR是ASP.NET開發人員的一個新的圖書館,它使 太簡單了實時網絡功能添加到您的應用程序 。什麼是「實時網絡」功能?這是讓你的服務器端代碼推送內容到連接 客戶,因爲它發生在實時的 能力。
以下是一個簡單網頁的例子,其中一個按鈕開始於Notepad.exe
。一旦這個過程開始時,頁面上的標籤顯示process started
。當進程退出(Notepad
是封閉的),標籤的更新process exited
。
因此,首先創建一個ASP.NET空web應用程序項目(我們將其命名爲MyWebApplication)並獲取Microsoft ASP.NET SignalR NuGet package。 Web表單添加到項目並將其命名爲測試。將以下代碼添加到測試。ASPX文件:
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="Test.aspx.cs" Inherits="MyWebApplication.Test" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://code.jquery.com/jquery-1.8.2.min.js"
type="text/javascript"></script>
<script src="Scripts/jquery.signalR-1.0.1.js" type="text/javascript"></script>
<script src="/signalr/hubs" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
// Proxy created on the fly
var chat = $.connection.chat;
// Declare a function on the chat hub so the server can invoke it
chat.client.addMessage = function (message) {
$('#label').text(message);
};
// Start the connection
$.connection.hub.start();
});
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server" />
<div>
<asp:UpdatePanel runat="server">
<ContentTemplate>
<asp:Button runat="server" Text="Start Notepad.exe"
ID="button" OnClick="button_Click" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger
ControlID="button" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
<span id="label"></span>
</div>
</form>
</body>
</html>
添加一個新的類文件到您的項目並將其命名爲Chat
。在Chat.cs你將有:
using Microsoft.AspNet.SignalR;
namespace MyWebApplication
{
public class Chat : Hub
{
public void Send(string message)
{
//Call the addMessage method on all clients
var c = GlobalHost.ConnectionManager.GetHubContext("Chat");
c.Clients.All.addMessage(message);
}
}
}
添加以下到Test.aspx.cs文件:
using System;
using System.Diagnostics;
using Microsoft.AspNet.SignalR;
namespace MyWebApplication
{
public partial class Test : System.Web.UI.Page
{
Chat chat = new Chat();
protected void Page_Load(object sender, EventArgs e)
{
}
void MyProcess_Exited(object sender, EventArgs e)
{
chat.Send("process exited");
}
protected void button_Click(object sender, EventArgs e)
{
Process MyProcess = new Process();
MyProcess.StartInfo = new ProcessStartInfo("notepad.exe");
MyProcess.EnableRaisingEvents = true;
MyProcess.Exited += MyProcess_Exited;
MyProcess.Start();
chat.Send("process started");
}
}
}
添加的Global.asax文件:
using System;
using System.Web.Routing;
namespace MyWebApplication
{
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs();
}
}
}
我還沒有涉及的一些東西:
你使用更新面板或任何Ajax/jQuery? – jason 2013-03-05 11:53:01