最后弹出的时间窗口覆盖了c#早期的时间窗口
本文关键字:时间 窗口 覆盖 最后 | 更新日期: 2023-09-27 18:18:02
不确定我的标题是否正确
我有一个按钮,当我点击它时,它会弹出一个小窗口(基于中继器中的数据),让用户输入信息并单击OK
按钮进行下一步。
下面是我的Button.Click
代码:
protected void btnRedeemAll_Click(object sender, EventArgs e)
{
foreach( RepeaterItem itm in repGiftResults.Items )
{
if (pr.AdditionalFieldsEnabled == true)
{
AdditionalInfoGiftProcess(pid, giftId, txtQty, txtToken);
}
}
}
divAdditionalInfo是一个分区ID,divAdditionalInfo。Style["visibility"] = "visible";和divAdditionalInfo。Style["display"] = "table-cell";是弹出提示窗口,让用户输入信息,点击"确定"按钮继续;addtionalinfogiftprocess()函数的代码如下:
public void AdditionalInfoGiftProcess(int productID, int giftID, TextBox txtQty, UserControls_TokenControl txtToken)
{
/*
Some logic here
*/
//generate pop up window
divAdditionalInfo.Style["visibility"] = "visible";
divAdditionalInfo.Style["display"] = "table-cell";
}
下面是我的代码divAdditionalInfo
在html:
<div
id="divAdditionalInfo"
class="BlackCover"
style="VISIBILITY:hidden; DISPLAY:none;" runat="server">
<!--
html code that generate the pop out window.
consist of text box and `OK` button, and "Cancel" button.
-->
</div>
当我点击temoBtn
按钮时,我只得到1个时间窗口(div)弹出,这意味着我只能输入1个时间信息并点击OK
按钮。
我希望窗口(div) 一个接一个地弹出3次,这样我就可以输入信息3次,然后依次点击OK
按钮。
但是,最后一次弹出的窗口似乎已经覆盖了那些早期弹出的窗口。
有解决这个问题的办法吗?
注。实际上你可以忽略html代码。它只是生成弹出窗口的代码。也就是说,当我点击tempBtn
按钮时,带有id = "divAdditionalInfo"
的分区会以窗口的形式提示出来,让用户输入信息并点击OK
按钮。
在循环中没有任何东西可以接受输入。
你所做的就是设置3次可见性,然后继续。
在OK和cancel按钮的处理程序中,您可以检查任何挂起的消息,并在必要时显示下一个消息。
你希望这里发生什么?当用户单击OK时,应该发生什么事情吗?或者用户需要点击OK三次才能让弹出窗口消失?
在任何情况下-正如您的代码现在所示,服务器正在生成一个可见的div。使其可见一次与使其可见三次的效果相同。通过客户机后,可以尝试使用JavaScript强迫用户在div消失之前使用它三次。
这听起来对用户来说不是一个好情况;也许可以考虑在三个弹出窗口中使用不同的元素?
编辑:我仍然不确定你是如何设置不同元素的样式与你的代码。div在哪里声明?在中继器的模板内?如果是这样,我很惊讶你的代码编译。您需要循环遍历生成的复制器模板实例,并在每个实例上调用FindControl("divAdditionalInfo")
来访问div的每个实例。