最后弹出的时间窗口覆盖了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按钮。

最后弹出的时间窗口覆盖了c#早期的时间窗口

在循环中没有任何东西可以接受输入。

你所做的就是设置3次可见性,然后继续。

在OK和cancel按钮的处理程序中,您可以检查任何挂起的消息,并在必要时显示下一个消息。

你希望这里发生什么?当用户单击OK时,应该发生什么事情吗?或者用户需要点击OK三次才能让弹出窗口消失?

在任何情况下-正如您的代码现在所示,服务器正在生成一个可见的div。使其可见一次与使其可见三次的效果相同。通过客户机后,可以尝试使用JavaScript强迫用户在div消失之前使用它三次。

这听起来对用户来说不是一个好情况;也许可以考虑在三个弹出窗口中使用不同的元素?

编辑:

我仍然不确定你是如何设置不同元素的样式与你的代码。div在哪里声明?在中继器的模板内?如果是这样,我很惊讶你的代码编译。您需要循环遍历生成的复制器模板实例,并在每个实例上调用FindControl("divAdditionalInfo")来访问div的每个实例。