Окно подтверждения OnClientClick в ASP.NET - PullRequest
1 голос
/ 30 марта 2012

Я пытаюсь работать на этом сайте, где мне нужно отфильтровать данные, которые нужно вставить в базу данных.Например, мне нужно вставить «Hello World» в базу данных.Тем не менее, он уже существует.Поэтому мне нужно всплывающее окно с подтверждением «Строка Hello World уже существует в базе данных. Вы уверены, что хотите продолжить?»

Моя проблема в том, что я не знаю, в каком месте моего кода я должен включить свое подтверждающее сообщение.См. Ссылку ниже:

private bool CheckData(string myString)
{
    //Check database if myString already exists. 
    return;
}

private void btnSave_Click(Object sender, EventArgs e)
{
    CheckData(myString)
    //If the above is true, then the confirmation box should appear.
    //Do something to save myString to the database.
}

Я программно добавляю обработчик события OnClientClick к моей кнопке, используя следующий код:

btnSave.OnClientClick = "confirmation('The string " + myString + " already exists in the database. Are you sure you want to continue?')";

Моя проблема в том, что лучше всегосправиться с такого рода сценарием?Поскольку я не могу поместить этот код в событие btnSave_Click (он добавит обработчик OnClientClick, но будет срабатывать только при следующем нажатии кнопки).

Ответы [ 3 ]

0 голосов
/ 30 марта 2012
0 голосов
/ 30 марта 2012

// добавьте эту функцию в вашу программу

public static void ShowAlertMessage(string error)
{
        Page page = HttpContext.Current.Handler as Page;
        if (page != null)
        {
            error = error.Replace("'", "\'");
            ScriptManager.RegisterStartupScript(page, page.GetType(), "err_msg", "alert('" + error + "');", true);
        }
    }

// проверьте значение, возвращаемое вашей функцией

private void btnSave_Click(Object sender, EventArgs e)
{
    bool flag=CheckData(myString);
    //If the above is true, then the confirmation box should appear.
    //Do something to save myString to the database.
if (flag==true)
{
ShowAlertMessage("The data Could not be added");
}
else
{
//do the desired operation of adding in the database.
}

}

Надеюсь, это поможет ..

0 голосов
/ 30 марта 2012

чтобы сделать это через ajax, пусть onClientClick вызывает функцию js, которая вызывает обработчик .net, чтобы проверить, существует ли файл, и либо:

  1. возвращает true, если файла не существует, поэтому обратная передачапроисходит
  2. , если файл уже существует, всплывающее окно подтверждения и возвращать результат окна подтверждения

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

...