2015-05-22 4 views
0

У меня есть функция javascript во внешнем файле JS. Я хочу назвать это из co0de позади. Как я могу это сделать ? Я где-то читал, что могу делать с ScriptManager.RegisterStartupScript, но как, может ли кто-нибудь объяснить мне.Вызов функции Javascript из кода в C#

JS файла:

Function1() 
    { 
     alert("came"); 
    //Some More logic 
    } 

Update

Вызов из

//Tried this But NOT WORKING 
protected void Page_PreRender(object sender, EventArgs e) 
{ 
     ScriptManager.RegisterStartupScript(this, GetType(), "Function1", "Function1();", true); 
    Page.ClientScript.RegisterStartupScript(GetType(), "Function1", "Function1()", true); 

} 
+2

возможно дубликат [Как вызвать функцию Jquery из C#] (http://stackoverflow.com/questions/22216177/how-to-call-jquery-function-from-c-sharp) – IamStalker

ответ

1

Я часто использовал этот

string script = string.Format("alert('{0}');",alert); 
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", script, true); 

в основном, он просто вставляет эту строку на вашу страницу и запускает его, как только страница загрузится

+0

определить предупреждение как переменную, которую вы хотите видеть в оповещении – stackoverfloweth

+0

My Function1() содержит некоторую большую логику, h Я хочу снова использовать. Так что мне нужно держать в EXT JS FIle. –

+0

- это функция 1() в коде позади? Совсем немного сложнее общаться с js -> C#.Если это так, проще всего использовать функцию ajax из js – stackoverfloweth

0

вы можете попробовать

ClientScript.RegisterStartupScript(GetType(),"CallMyFunction","Function1();",true); 

ИЛИ

ClientScript.RegisterStartupScript(this,this.GetType(),"CallMyFunction", 
            "Function1();",true); 

другой подход

ScriptManager.RegisterStartupScript(Page, typeof(Page), "somekey", script, true);

это будет работать и при частичной обратной передаче.

+0

См. Обновленный код –

+0

@ hellotemp11 r u используя любую панель обновления в asp? – Sachu

+0

Нет панели обновления –

0

Строго ответить на ваш вопрос, вы ищете что-то вроде этого:

//Following statement is used to call pre-defined javascript function 
protected void btnServerSide_Click(object sender, EventArgs e) 
{ 
    ScriptManager.RegisterStartupScript(this, GetType(), "myFunction", "myFunction();", true);    
} 

Here это сайт, который предоставляет некоторые подробности и примеры

MSDN также имеет большое прохождение игры с несколькими примерами

This является моим фаворитом, перечисленных выше, является исчерпывающим.

+0

. См. Обновленный код –

+0

Возможно, потому что ваш пытаясь вызвать javascript, прежде чем он будет обработан, обратите внимание на то, как мой огонь срабатывает нажатием кнопки, и у вас есть ваша функция в prerender. – Pseudonym

+0

По крайней мере, предупреждение должно работать тогда –

-1

Вы можете попробовать это ..

Page.ClientScript.RegisterClientScriptBlock(typeof(Page), "CallMyFunction", "myFunction()", true); 
+0

См. Обновленный код –

0

пример кода, который будет включать в себя файл яваскрипта и затем вызвать метод из кода позади.

MyJSFile.js

function Test() { 
    alert("hi"); 
} 

WebForm1.aspx.cs -

using System; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 

namespace CodeprojectTest 
{ 
    public partial class WebForm1 : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      var js = new HtmlGenericControl("script"); 
      js.Attributes["type"] = "text/javascript"; 
      js.Attributes["src"] = "JScript1.js"; 
      Page.Header.Controls.Add(js); 
      Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", "Test();", true); 
     } 
    } 
} 
+0

Это не работает. Что я должен писать для «myScript»? –

+0

Является ли «скрипт» и «myScript» одинаковым? Почему вы использовали эти 2 переменные здесь? –

Смежные вопросы