Мне нужен синхронный вызов из кода ASP.NET (C#) в функцию Javascript.ASP.NET -> Синхронный вызов функции javascript
Я пробовал ScriptManager.Registerclient, но поскольку это асинхронно, это нехорошо. Мне нужно некоторое тестирование в javascript перед возвратом значения (обновление UpdatePanel), чтобы проверить, действительна ли операция.
За короткий пример кода:
myButton_click(object sender, EventArgs args)
{
<callJavascriptSynchronous>
if (MyHiddenField.Value == "true")
//Do
else
//Don't
}
MyHiddenField находится в пределах UpdatePanel. Для яваскрипта функции:
function javascriptFoo(myInteger)
{
var returnValue = window.external.TestInteger(myInteger);
document.getElementById('<%=MyHiddenField.ClientID%>').value = returnValue;
}
UpdatePanel выглядит следующим образом:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:HiddenField ID="MyHiddenField" runat="server" ClientIDMode="Static" Value="" Visible="false"/>
</ContentTemplate>
Любые предложения по синхронному вызову?
Спасибо!
Edit: Добавлен полный код:
MyPage.aspx:
function javascriptFoo(myInteger)
{
var returnValue = window.external.TestInteger(myInteger);
document.getElementById('<%=MyHiddenField.ClientID%>').value = returnValue;
}
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:HiddenField ID="MyHiddenField" runat="server" ClientIDMode="Static" Value="" Visible="false"/>
</ContentTemplate>
<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand">
MyPage.aspx.cs:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
ScriptManager.RegisterStartupScript(UpdatePanelContext, UpdatePanelContext.GetType(), "AlertTest", "AlertTest()", true);
string sVal = HiddenFieldContext.Value;
if (sVal == "true") //do
else //don't
}
Postback не принесет мне никакой пользы, так как это происходит внутри операции. Я на самом деле делаю это внутри события GridView.RowCommand. – user1782815
Где находится "myButton_click"? – Alexander
Где это? Мне нужна проверка данных в событии Gridview_rowCommand. Я могу это сделать, и он работает, но звонок не синхронный. –
user1782815