2015-04-04 50 views
0

我有一個c#變量,聲明在aspx頁面中,並且想要在for(;;)循環中再次初始化 。 循環正確執行,但我的c#變量不是再次初始化。 我在做什麼!再次初始化來自javascript的c#變量

for (var j = 2; j < '<%=menu[i].Length%>'; j++) { 
           var flag = <%=j++%> 
           alert(flag); 
          } 

但在下面的代碼有可能

for (var j = 2; j < '<%=menu[i].Length%>'; j++) {        
           <%j++;%> 
           <%j++;%> 
           var flag = <%=j%> 
           alert(flag); 
} 
+0

無法通過JavaScript完成 - 該代碼將在客戶端運行,您無法使用它來操作服務器端代碼。 – vlaz 2015-04-04 16:23:29

+0

其實你是什麼想法背後初始化JavaScript中的變量後面的代碼?我可以給你更好的提示來解決你的問題。 – Keval 2015-04-04 16:55:08

+0

我發現它*非常*不清楚你想要做什麼。 'j'是一個C#變量還是一個JavaScript變量?它看起來像你正在試圖把它當作兩者。 – 76484 2015-04-04 17:27:06

回答

0

Alernate的方法是使用隱藏字段,而不是使用變量。

<asp:HiddenField runat="server" ID="hdn" /> 

var myVal = document.getElementById("<%= hdn.ClientID %>").value; 
for (var j = 2; j < '<%=menu[i].Length%>'; j++)  {        
    myVal++; 
    document.getElementById("<%= hdn.ClientID %>").value = myVal; 

} 

在服務器端:

int val = int.Parse(hdn.Value); 
0

是的,你可以初始化變量背後的代碼在你的.ASPX頁。也可以在您的.ASPX頁面使用寫入FOR循環。後面的變量

代碼必須是你的類的公共和成員變量:

public partial class _Default : System.Web.UI.Page 
{ 
    public int i = 0; 

    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
} 

JavaScript函數:

function increaseVariable() { 
     <% for (int j = 2; j < menu[i].Length; j++) 
      { 
      %> 
     var flag = <%=i++%>; 
      alert(flag); 
     <%}%> 
    } 

您可以測試你的功能,下面添加輸入按鈕,在onclick事件中調用以上功能:

<input type="button" value="Increase" onclick="increaseVariable();" /> 

如果您有任何問題,請讓我知道。