C# 文本框赢得';t更新
我在aspx页面的更新面板中有一个文本框 这是我的代码: 场景1:C# 文本框赢得';t更新,c#,asp.net,textbox,updatepanel,C#,Asp.net,Textbox,Updatepanel,我在aspx页面的更新面板中有一个文本框 这是我的代码: 场景1: protected void UploadPromoFilesButton_Click(object sender, EventArgs e) { try { YoutubeStatusLabel.Text = "Starting upload..."; //UpdatePanel.Update(); if (!string.IsNullOrEmpty(UrlTag
protected void UploadPromoFilesButton_Click(object sender, EventArgs e)
{
try
{
YoutubeStatusLabel.Text = "Starting upload...";
//UpdatePanel.Update();
if (!string.IsNullOrEmpty(UrlTagTextBox.Text))
{
var Movie = Vitagamer.Movies.DB.DBUtilities.Get.ByUrlTag(UrlTagTextBox.Text);
//Movie.UploadPromo();
}
else
{
//Vitagamer.Movies.PromotionHelper.Youtube.Execute.UploadAllPromoVideos();
}
System.Threading.Thread.Sleep(5000);
YoutubeStatusLabel.Text = "Files were uploaded successfully.";
}
catch (Exception Ex)
{
YoutubeStatusLabel.Text = Ex.Message;
}
}
第二幕:
protected void UploadPromoFilesButton_Click(object sender, EventArgs e)
{
try
{
YoutubeStatusLabel.Text = "Starting upload...";
UpdatePanel.Update();
if (!string.IsNullOrEmpty(UrlTagTextBox.Text))
{
var Movie = Vitagamer.Movies.DB.DBUtilities.Get.ByUrlTag(UrlTagTextBox.Text);
//Movie.UploadPromo();
}
else
{
//Vitagamer.Movies.PromotionHelper.Youtube.Execute.UploadAllPromoVideos();
}
System.Threading.Thread.Sleep(5000);
YoutubeStatusLabel.Text = "Files were uploaded successfully.";
}
catch (Exception Ex)
{
YoutubeStatusLabel.Text = Ex.Message;
}
}
在这两种情况下,我从未看到开始上传文本,但我看到文件成功上传文本
如何让用户知道上载正在开始,因为这可能需要一段时间。我不能使用进度条,因为我使用的是youtube api,它使用的是同步。上传。我不需要进度条,我只想查看一个文本,以了解用户上传已经开始。怎么做?谢谢。它不会立即更新面板。执行整个方法,然后您会看到成功上传的消息,因为这是您最后设置文本的内容 要查看此操作,请尝试删除此行:
YoutubeStatusLabel.Text = "Files were uploaded successfully.";
但是,在完成后,它会说“开始上传”。那不好!因此,使用客户端脚本设置“开始上传…”文本。它不会立即更新面板。执行整个方法,然后您会看到成功上传的消息,因为这是您最后设置文本的内容 要查看此操作,请尝试删除此行:
YoutubeStatusLabel.Text = "Files were uploaded successfully.";
但是,在完成后,它会说“开始上传”。那不好!因此,请使用客户端脚本设置“开始上载…”文本。您看不到文本的原因是您从未将信息发送回用户 从本质上讲,这个过程是这样的:
- 您的请求进入服务器
- 服务器处理请求并创建所有HTML文本(此时该方法已完全运行,因此
将是在YoutubeStatusLabel.text
UploadPromoFilesButton\u单击
方法中设置的最后一个内容)
- HTML文本被发送回客户端
我将研究signer以获得更高级的客户机-服务器通信 您没有看到文本的原因是您从未将信息发送回用户 从本质上讲,这个过程是这样的:
- 您的请求进入服务器
- 服务器处理请求并创建所有HTML文本(此时该方法已完全运行,因此
将是在YoutubeStatusLabel.text
UploadPromoFilesButton\u单击
方法中设置的最后一个内容)
- HTML文本被发送回客户端
我将研究signer以获得更高级的客户机-服务器通信 您将看不到对
YoutubeStatusLabel.Text的第一次更新,因为您的代码正在服务器上执行,尚未返回到浏览器
这本书值得一读
我不认为通知用户上传已经开始,然后在5秒后再次通知有什么好处。我会将文本设置为开始上传…
,然后进行回调,将标签更新为成功上传的文件。
过程完成后。请参见您将不会看到对YoutubeStatusLabel.Text的第一次更新,因为您的代码正在服务器上执行,尚未返回到浏览器
这本书值得一读
我不认为通知用户上传已经开始,然后在5秒后再次通知有什么好处。我会将文本设置为开始上传…
,然后进行回调,将标签更新为成功上传的文件。
过程完成后。如果您只是想让用户知道正在上载文件,请参见:这里有一种方法,无需编写太多特殊的客户端或服务器代码
由于您已经有了UpdatePanel,现在只需添加一个带有精美图像和标题的UpdateProgress:
ASPX:
以及。如果您只是想让用户知道正在上载文件:这里有一种方法,无需编写太多特殊的客户端或服务器代码
由于您已经有了UpdatePanel,现在只需添加一个带有精美图像和标题的UpdateProgress:
ASPX:
还有。难道没有办法在服务器端完成吗?好的经验法则:不要在服务器端做应该在客户端完成的事情。但是如果你真的想去那里,那么是的,有。学习AJAX并构建服务器端消息队列。让AJAX(或者更好,试试)获取消息,然后显示它们。如果希望以良好的格式显示它们,请使用通知库,例如。如果您决定了AJAX路线,我建议使用使其更容易。是否有一种方法可以在服务器端完成它?好的经验法则:不要在服务器端做应该在客户端完成的事情。但是如果你真的想去那里,那么是的,有。学习AJAX并构建服务器端消息队列。让AJAX(或者更好,试试)获取消息,然后显示它们。如果希望以良好的格式显示它们,请使用通知库,例如。如果您决定AJAX路线,我建议使用以使其更容易。