Page.ClientScript.RegisterStartupScript не будет запускаться более одного раза даже с разными ключами - PullRequest
0 голосов
/ 27 октября 2019

Я использую asp.net c #, я хотел бы вывести предупреждение несколько раз, у меня есть этот код в моем коде:

Page.ClientScript.RegisterStartupScript(this.GetType(), "all_field_alert", scp1, true);
Page.ClientScript.RegisterStartupScript(this.GetType(), "all_field_alert2", scp1, true);

Даже у меня разные ключи, он выиграл 't 2 раза, чтобы предупредить, что я сделал не так?

Спасибо и С уважением,

Я пытался

ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString("D"), scp1, true);
ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString("X"), scp1, true);

, но в конечном итоге то же самое, только один раз.

1 Ответ

0 голосов
/ 02 ноября 2019

Если вы используете функцию Window.alert () , одновременно может отображаться только один ее экземпляр, в то время как пробный код выполняет два.

Чтобы иметьнесколько всплывающих окон, лучше использовать метод window.confirm () , который поставляется вместе с callBack, и при выполнении callBack вы можете получить еще один.

DEMO

enter image description here

<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

C # - код позади

protected void Button1_Click(object sender, EventArgs e)
{
    string scp1 = "if (window.confirm('ALERT 1')) { if (window.confirm('ALERT 2')) { alert('LAST ALERT'); } }";

    ScriptManager.RegisterStartupScript(this, this.GetType(), Guid.NewGuid().ToString("D"), scp1, true);
}

В случае использования всплывающих элементов, таких как Bootstrap Modalвам нужно будет создать несколько экземпляров и отобразить их все. Если дважды вызвать show () для одного экземпляра, он не отобразит два модальных всплывающих окна.

...