2017-01-11 9 views
0

Я прочитал много ссылок для этого вопроса, но не получаю результата. Итак, я подумал, что позвольте мне попытаться объяснить мой scienario здесь.Как вызвать клиентский скрипт из User Control в ASP.Net?

Это мой 3-й скрипт, который находится в view.ascx. Я хочу вызвать его в .cs функции файла и в событии click.

view.ascx

<script type="text/javascript"> 
function startLoading() { 
    alert("load start"); 
    var el = jQuery(".scp-entry-header"); 
    App.blockUI(el); 
} 


function stopLoading() { 
    alert("load end"); 
    var el = jQuery(".scp-entry-header"); 
    App.unblockUI(el); 
} 

function getCalendarData() { 
    alert("calendarcalled"); 
} 
</script> 

view.ascx.cs

//ViewData button click 
protected void btnGetData_Click(object sender, EventArgs e) 
{ 
    //How to call startLoading function here? 
    process from database; 
    //How to call stopLoading function here? 
} 

//simple function call 
protected void showCalendar() 
{ 
    //How to call getCalendarData function here? 
} 

Я прочитал о RegisterScript, но не получают результата. Я не понимаю, где для RegisterScript и как вызвать его в функции.

Может кто-нибудь, пожалуйста, предложите мне подробно, как я могу назвать функцию javascript здесь?

+0

Возможный дубликат (HTTP [Как я могу позвонить Javascript из кнопки asp.net кликать?]: // StackOverflow. com/questions/15136034/how-do-i-call-javascript-from-asp-net-button-click) – rcdmk

+0

@rcdmk это не то же самое. Я хочу вызвать функцию javascript из файла '.cs' (а не только при нажатии кнопки). Я также хочу вызвать javascript в простой функции файла '.cs'. Я отредактировал свой вопрос, чтобы более четко его понять. Пожалуйста, поправьте меня, чтобы остановить недоразумение. –

ответ

0

Try This

protected void btnGetData_Click(object sender, EventArgs e) 
 
{ 
 
     //How to call startLoading function here? 
 
     process from database; 
 
     //How to call stopLoading function here? 
 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "startLoading", true); 
 
}

или

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('Hello.')</script>", false); 
+0

Будет ли это полезно в случае контроля пользователя? Мой вопрос заключается в UserControl –

+0

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

1

Имейте в виду, что вы не можете вызвать функцию JavaScript в середине вашего кода на C# и продолжить выполнение кода на стороне сервера.

Все вызовы функции JavaScript в файле .cs - это просто планирование/маркировка для выполнения после выполнения кода на стороне сервера. Они не выполняются вместе с кодом сервера.

Другими словами, вам нужно будет реализовать это с помощью UpdatePannel s и асинхронный код для этого, или, еще лучше, реализовать это как асинхронные вызовы в JavaScript.

Код для клиента должен быть на клиенте. Старайтесь не смешивать их.

+0

Спасибо. Я прочитал некоторую ссылку (http://stackoverflow.com/questions/18036508/how-to-call-a-java-script-function-from-user-controls), но это не полезно. Можете ли вы посоветовать мне, что мне делать, чтобы справиться с этой ситуацией? –