2012-02-17 1 views
1
<script language="javascript" type="text/javascript"> 
    function myjavascriptfn() 
     { 
     //debugger; 
     var strValue= "test"; 
     return strValue 
     } 

Как я могу назвать эту функцию javascript в своем коде и следовать соответствующим образом с соответствующими возвращаемыми значениями.Как вызвать javascript в C# и получить возвращаемое значение?

+0

Вы спрашиваете, как разбирать HTML, извлекать JS и выполнять его на стороне сервера ... или как заставить браузер выполнять JS и передать результат на сервер? – Quentin

+0

@Quentin абсолютно! –

+0

- Это был либо вопрос, либо вопрос. Что он? – Quentin

ответ

3

Вы можете легко объявить JavaScript для запуска на клиенте с помощью

ScriptManager.RegisterStartupScript(this, this.GetType(), "launchpage", " 
    function javascriptfn() { 
     var strValue= 'test'; 
     return strValue; 
    } 
    document.getElementById('"+HiddenField1.ClientID+"').value = javascriptfn(); 
    document.getElementById('"+saveProgressButton.ClientID+"').click(); 
    ", true); 

примечание: Я разделил вне JavaScript из на несколько строк, чтобы сделать его более удобным для чтения, но все это должно быть на одной линии.

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

Я хотел бы добавить UpdatePanel с осиной скрытой и скрытая кнопка, чтобы вызвать его, заполнить значение скрытого поля с тем, что эта функция для имела бы некоторый код в код позади, чтобы захватить событие.

<asp:UpdatePanel ID="responcetable" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
     <asp:HiddenField ID="HiddenField1" runat="server" /> 
     <asp:Button ID="saveProgressButton" runat="server" Text="Button" CssClass="displaynone" /> 
    </ContentTemplate>   
    <Triggers><asp:AsyncPostBackTrigger ControlID="saveProgressButton" EventName="theeventtodealwiththis" /></Triggers> 
</asp:UpdatePanel> 

и на ServerSide

protected void theeventtodealwiththis(object sender, EventArgs e) 
    { 
     // some logic to handle the value returned 
    } 
+0

спасибо за ваш ответ .. в моем javascript я буду вызывать flashobject, поэтому объявив, что он не работает ... Я ожидаю, что он должен напоминать метод, который возвращает string! how? –

+0

Это решение должно ответить на часть 2 комментария @sanguine, посмотреть вокруг и посмотреть, может ли он ответить на часть 1. Когда «saveProgressButton» будет нажата, он отправит «HiddenField1» обратно на сервер, который должен содержать строка из javascriptfn(), доступ к которой вы можете получить из HiddenField1.Text. Хотите ли вы, чтобы флеш-объект связывался с методом aC# в коде позади? или просто отвечает на строку в JavaScript. Или есть несколько методов JavaScript, которые могли бы вызвать это сломать? – kamui

+0

Благодарю вас, позвольте мне выкрикнуть и дать вам ответ ... еще раз спасибо :) –

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

  • Нет связанных вопросов^_^