Umapathi K Ответов: 7

как вызвать функцию javascript в c#


как вызвать функцию javascript в c#

код c# позади:
protected void print_click(object sender,eventargs e)
{
  //When i clicked this button i need to call javascript function
}


код JavaScript

function example()
{
var prtContent = document.getElementById('<%=GridView3.ClientID %>');
//in between these two lines many lines there its not necessary here
window.print();
}

Dholakiya Ankit

попробуй вот это

Элемента управления scriptmanager.RegisterClientScriptBlock(это.Страницы, этот.Страницы.Метод gettype(), "сценарий", "<сценарий тип='текст/JavaScript'&ГТ;предупреждение('запись успешно удален.');&ЛТ;/скрипт>", ложные);

Member 10851921

Элемента управления scriptmanager.RegisterClientScriptBlock(это.Страницы, этот.Страницы.GetType(), "script", "alert('Record deleted successfully.');", false);

7 Ответов

Рейтинг:
37

Sergey Alexandrovich Kryukov

Прочитайте все существующие ответы, но сначала поймите одну фундаментальную вещь: вы даже не можете говорить о "вызове".

C# находится на стороне сервера, Javascript — на стороне клиента. Это может быть что угодно, только не "звонок". Что это? Прежде всего, вам нужно понять некоторые основы веб-функциональности. Все, что делает серверный код,-это получает HTTP-запрос со стороны клиента, обрабатывает его, а затем генерирует HTTP-ответ и отправляет его на клиентскую сторону. Вы можете генерировать любой мыслимый контент. И часть контента может быть Javascript. Вы просто генерируете Javascript, возможно, параметризованным способом, используя некоторые данные. Как вы это делаете? Это отдельный вопрос. Вы можете генерировать HTTP-ответ напрямую или использовать RegisterStartupScript или еще что-нибудь. В этом и заключается суть его работы.

—СА


Рейтинг:
31

Suvabrata Roy

Привет,

Попробовать это

string str="<script>alert(\"ok\");</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", str, false);


Kishor Khatri

Suvabrata Спасибо Рой
Это работа для меня....

Suvabrata Roy

Добро пожаловать...

alirezajo0n

как преобразовать этот код в csharp?
<script type="text/javascript">
функция Clear(mySearch) {
документ.метода getElementById("другую программу").значение = "";

}
</script>

Suvabrata Roy

Я так и не понял, как зачем вам понадобился JavaScript для C#

Рейтинг:
23

Prosan

вот два метода. здесь вы не очистили, что 1. после выполнения функции java вы хотите, чтобы некоторые в print_click события в cs. или 2. В print_click событие excecute чем вы хотите js функцию

в 1. состоянии вы можете написать просто

print.Attributes.Add("onclick", "example();");


в 2. состоянии вы можете написать

protected void print_click(object sender,eventargs e)
{
  //when i click this button i need to call javascript function

ScriptManager.RegisterStartupScript(Page, GetType(), "JsStatus", "example();", true);

}


Marlon Cano

ty

Рейтинг:
1

AmitGajjar

Привет,

Вы можете выполнить файл javascript с помощью,

Элемента управления scriptmanager.RegisterStartupScript[^]

Пример: Как выполнить javascript на языке C#[^]

Есть и другие способы. Дайте нам знать, если это неосуществимо для вас,

Спасибо
-Амит.


Рейтинг:
1

NothingToLoose

Напишите функцию таким образом

protected void print_click(object sender,eventargs e)
{
  //when i click this button i need to call javascript function
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
            sb.Append(@"<script language='javascript'>");
            sb.Append(@"example();");
            sb.Append(@"</script>");
     System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "JCall1", sb.ToString(), false);
}


paraqbaji

@NothingToLoose,

Компилятор выдает ошибку в строке: sb.Append(@"<script language="'код JavaScript'">");

Тебе обязательно что-нибудь говорить об этом?

Ошибка: слишком много символов в символьном литерале.

Anna SB

Проблема в строке 4: Слишком много символов в символьном литерале.
Решение проблемы: преобразуйте строковые кавычки из C-Based в HTML-Based, чтобы избежать чтения C# в качестве тега закрытия строки.
Будет: sb.Append(@"<script language='javascript'>");

Рейтинг:
0

Hitesh Gohel

Привет,

Используйте этот код который я использовал и он работает

protected void print_click(object sender,eventargs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "print", "<script>example();</script>");
}


Farshad72

не могли бы вы загрузить эту библиотеку для ClientScript?

Anna SB

Библиотека?
Это свойство, унаследованное от класса System.Web.UI.Page на используемую вами страницу.
Система ClientScriptManager.Веб.Пользовательского интерфейса.Страницы.ClientScript;

Рейтинг:
0

Anna SB

Все добавленные Вами решения превосходны на уровне синтаксиса. Но вы должны помнить, что существует задержка на уровне выполнения между сценариями на стороне сервера и на стороне клиента, когда вы пытаетесь запустить сценарий в пределах PageLoad Так что вы должны дать достаточное количество времени к тому же ASP.net серверная сторона для регенерации веб-страницы, как и должно быть ...

ClientScript.RegisterStartupScript(this.GetType(),
                                   "script",
                                   "setTimeout(YourFunction1, 1000);",
                                   true);


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