Как показать всплывающее сообщение от стороны сервера

Вот то, как мы делаем это. Обратите внимание, что существует, вероятно, больше граничных условий, чем Вы понимаете на первый взгляд.

Это - вторая версия, развернутая для 5x больше производительности (и да, я сравнил его). Я полагал, что оптимизирую его, потому что эта функция может быть вызвана сотни времен на страницу.

/// 
/// Produces optional, URL-friendly version of a title, "like-this-one". 
/// hand-tuned for speed, reflects performance refactoring contributed
/// by John Gietzen (user otac0n) 
/// 
public static string URLFriendly(string title)
{
    if (title == null) return "";

    const int maxlen = 80;
    int len = title.Length;
    bool prevdash = false;
    var sb = new StringBuilder(len);
    char c;

    for (int i = 0; i < len; i++)
    {
        c = title[i];
        if ((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9'))
        {
            sb.Append(c);
            prevdash = false;
        }
        else if (c >= 'A' && c <= 'Z')
        {
            // tricky way to convert to lowercase
            sb.Append((char)(c | 32));
            prevdash = false;
        }
        else if (c == ' ' || c == ',' || c == '.' || c == '/' || 
            c == '\\' || c == '-' || c == '_' || c == '=')
        {
            if (!prevdash && sb.Length > 0)
            {
                sb.Append('-');
                prevdash = true;
            }
        }
        else if ((int)c >= 128)
        {
            int prevlen = sb.Length;
            sb.Append(RemapInternationalCharToAscii(c));
            if (prevlen != sb.Length) prevdash = false;
        }
        if (i == maxlen) break;
    }

    if (prevdash)
        return sb.ToString().Substring(0, sb.Length - 1);
    else
        return sb.ToString();
}

Для наблюдения предыдущей версии кода это заменило (но функционально эквивалентно, и 5x быстрее), история пересмотра представления этого сообщения (нажмите на ссылку даты).

кроме того, RemapInternationalCharToAscii исходный код метода может быть найден здесь .

5
задан Jason Berkan 5 November 2009 в 15:28
поделиться

4 ответа

Для низкотехнологичного решения, которое хранит скрипт в шаблоне страницы, вы можете добавить его в свой HTML (это может быть в $ (document) .ready () ] вместо этого):

<script type="text/javascript">

var missingInfo = '<%= this.MissingInfo %>' == 'True';
if (missingInfo) {
    alert('Not enough information. Please try again.');
}

</script>

И добавьте защищенное свойство на свою страницу:

private bool missingInfo = false;

protected bool MissingInfo {
    get { return this.missingInfo; }
}

protected void Button1_Click(object sender, EventArgs e)    {
    // Button1 stuff ...
    // ... then if you want to show the alert
    this.missingInfo = true;
}
4
ответ дан 18 December 2019 в 09:08
поделиться
    protected void Button1_Click(object sender, EventArgs e)
    {
        ScriptManager.RegisterStartupScript(
            this, 
            this.GetType(), 
            "popup", 
            "alert('hello');", 
            true);
    }
11
ответ дан 18 December 2019 в 09:08
поделиться
string script = string.Format("alert('this is alert');");
        ScriptManager.RegisterClientScriptBlock(Page, typeof(System.Web.UI.Page), "redirect", script, true);
3
ответ дан 18 December 2019 в 09:08
поделиться

Хотя в примере кода в других ответах используется предупреждение, это всего лишь пример. Поместите свою функцию вместо предупреждения, и у вас будет всплывающее окно.

Вот код Дарина с вызовом вашей функции:

protected void Button1_Click(object sender, EventArgs e)    {
    ScriptManager.RegisterStartupScript(
        this,
        this.GetType(),
        "popup",
        "computeCorrectValue(parameter);",
        true);
}

Хотя я действительно не уверен, где вы получаете параметр, который передается в вашу функцию.

0
ответ дан 18 December 2019 в 09:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: