我需要在循环期间手动输入一些值。我正在使用C#ASP.Net和WebForms。
我正在尝试这个:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace systemII
{
public partial class MY_System : System.Web.UI.Page
{
private List<String> List = new List<string>();
private bool loop = false;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
while (loop) { }
for (int i = 1; i <= 10; i++)
{
string a = "A" + i.ToString();
if (i == 4 || i == 5)
{
loop = true;
ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "openModal();", true);
}
else
{
List.Add(a);
}
}
}
protected void Button2_Click(object sender, EventArgs e) // modal button
{
string b = "BB";
Lista.Add(b);
loop = false;
return;
}
}
}
但是Modal在循环结束后出现在屏幕上。我需要暂停循环,直到我输入文本框值。
任何可以帮助我吗?抱歉我的英语不好。
答案 0 :(得分:2)
在ASP.Net中,你不能只是暂停服务器端代码,因为服务器端代码总是完全执行(从不部分执行),即使在ASP.Net中使用异步页面,服务器端也是{{1连接到浏览器但在单独的进程中执行。浏览器从不知道也不关心服务器端发生的事情,服务器端也不知道也不关心浏览器在做什么,never
连接服务器端代码以您想要的方式浏览。
但是,当达到第一个索引= 4并发出模态弹出脚本时,你可以通过断开循环来模拟你想要的东西。然后你可以为用户做i = 5时做类似的事情已输入i = 4的值并且页面已回发。但是,需要在浏览器的请求中跟踪成功处理输入的so it's impossible
值,这可以通过设置名为i
的{{1}}变量在下面的代码中完成。字符串类型列表的集合。
因此,如果您使用此代码,工作流将:系统会提示用户在模式弹出窗口中输入i = 4的值,然后单击按钮ViewState
时回发后,将提示用户在模态弹出窗口中输入i = 5的值。
HandledValues