【发布时间】:2021-11-15 13:53:03
【问题描述】:
在向数据表中添加新数据行的循环中,我想在特定条件下显示一个确认框。因此,如果用户选择“是”,该行将添加到表中或跳过并且循环将继续。为此,我使用了 ModalPopupExtender,但问题是模态只有在循环完成后才会弹出,这对我来说没用。
这是我的代码: 循环:
for(int i=0;i<dt2.Rows.count;i++)
{
....
....
....
if (l > 0)
{
DataRow row = datarow1(dt2,dt3,i);
dt3.Rows.Add(row);
}
else
{
ModalPopupExtender1.Show();
if ((bool)ViewState["cnfirm"] == true)
{
DataRow row = datarow1(dt2, dt3, i);
dt3.Rows.Add(row);
}
}
}
和
protected void Decision_Command(object sender, CommandEventArgs e)
{
if (e.CommandArgument == "Yes")
{
ViewState["cnfirm"] = true;
}
else
{
ViewState["cnfirm"] = false;
}
}
请帮助解决此问题或提出其他/最简单的方法。
【问题讨论】:
-
哦,不,不要这样做。它将实现一个可怕的用户界面。您最好显示一个警告框,说“以下记录有问题 X,勾选每条记录旁边的复选框以声明是否应包含它,然后点击提交”.. 当您进行 Web 开发时,您应该分批思考“为用户提供解决所有问题所需的所有信息,并等待他们的统一回应”,然后还要平衡“一遍又一遍地提问的用户界面非常烦人” .." ..加上你的方法,如果他们犯了错误,就没有回头路了
-
我同意 - 渲染网格 - 为每一行添加一个复选框,并说“接受”。这样,用户可以检查每一行,然后点击一个按钮确认,甚至点击取消按钮。让用户卡在循环提示中真的很糟糕 - 没有出路,更糟糕的是,这种方法对于 20 行来说简直就是地狱。
-
同意你们两个,但这里的警报只会弹出 2 或 3 次,我需要知道弹出确认。请帮助我知道这一点。
-
在该循环期间您无法与用户交互。网页在服务器上。您必须首先呈现页面,发送到客户端,然后您才能与用户交互。回帖上的网页会到达服务器。后面的代码与 PAGE 而不是用户交互。代码运行完成后,整个页面将传输到客户端。只有在整个页面向下移动到客户端浏览器后,您才必须开始提示过程。您的代码永远不能直接与用户交互。即使您可以/可以使其正常工作,您也必须先将页面发送给用户。