2014-12-11 2 views
0

Я застрял в этой проблеме в течение нескольких дней.Невозможно изменить переменную JavaScript, созданную внутри UpdatePanel

1- Пользователь нажимает одну из кнопок.
2- Кнопка нажата, вставить .js переменную внутри label-> lbJavaScriptVar
3- Sys.Application.add_load (GridJson); называет .js функционировать

Проблема заключается в том, я не могу изменить переменную «SHOWTHIS» значение внутри UpdatePanel значение не изменится

----------- ------------------ [ASPX] ----------------------------- -------

<head> 
<script type="text/javascript"> 
    function GridJson() 
    { 
     alert(SHOWTHIS); 
     document.getElementById("Grid").innerHTML = 
       "<tr><td>" + SHOWTHIS+ "</td></tr>" 
    }    
</script> 
</head> 

...

<asp:UpdatePanel runat="server"> 
<ContentTemplate> 

<asp:Button ID="btMan" runat="server" OnClick="btMan_click" Text="Man"/> 
<asp:Button ID="btWoman" runat="server" OnClick="btWoman_click" Text="Woman"/> 

<asp:Label ID="lbJavaScriptVar" runat="server" ></asp:Label> 

<table id="Grid" border="5" class="cssMiniGrid"></table> 
<script type="text/javascript">Sys.Application.add_load(GridJson);</script> 

</ContentTemplate> 
</asp:UpdatePanel> 

----- ------------------------ [/ ASPX] ---------------------- --------------

----------------------------- [. Cs ] ------------------------------------

(btMan_click)... 
lbJavaScriptVar.Text = "<script> var SHOWTHIS= 9999</script> "; 

(btWoman_click)... 
lbJavaScriptVar.Text = "<script> var SHOWTHIS = 7777</script> "; 

------ ----------------------- [/. CS] ---------------------- --------------

::::::::::::::::::::::::::::::::: ::::::::::::::::::::::::::::::::::::::::::::::

EDITED ... I сделав это благодаря вашим правилам, отредактируйте эти строки, чтобы они работали

.ASPX< 
[ALTER]function GridJson() ------> function GridJson(SHOWTHIS) { 

.CS 
[DELETE](btMan_click)... 
[DELETE]lbJavaScriptVar.Text = "<script> var SHOWTHIS= 9999</script> "; 
[DELETE](btWoman_click)... 
[DELETE]lbJavaScriptVar.Text = "<script> var SHOWTHIS = 7777</script> "; 
[INCLUDE]ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "GridJson(" + "THANKS" + ");", true); 

Примечание: Я сделал этот код на первый внутри элемента управления веб-пользователя, теперь код находится в корневой странице

ответ

1

попробовать просто таким образом

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "", "myFunction('value');", true); 

затем в Javascript

function myFunction(parameter){ 
    SHOWTHIS= parameter; 
} 

см here

+0

Таким образом, функция .js будет называться просто в первый раз ... когда я нажать другую кнопку метод не отвечают – Liev04

+0

заменить RegisterStartupScript с RegisterClientScriptBlock – faby

+0

Я редактировал мой ответ. Дайте мне знать – faby

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