2014-10-27 64 views
0

我想從事件處理程序運行一些JavaScript。這裏是我的代碼:從vb.net運行代碼

Protected Sub RecordBottomGridRow(ByVal sender As Object, ByVal e As EventArgs) Handles GridView_Body.PageIndexChanging 
    Dim scriptText As New StringBuilder() 
    scriptText.Append("<script type=""text/javascript"">") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("function RecordBottomGridRow() {") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var elements = document.getElementsByClassName('exp');") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var expIndex;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("for (var i = 0, im = elements.length; im > i; i++) {") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var elementId = elements[i].id;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("expIndex = elementId.substring(3);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("}") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var fundCode = document.getElementById('htmlFund' + expIndex);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("var e = document.getElementById('exp' + expIndex);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("document.getElementById('lastFundChosen') = fundcode.value;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("document.getElementById('expOrColl').value = e.value;") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("alert(e.value);") 
    scriptText.Append(Environment.NewLine) 
    scriptText.Append("} </script>") 

    ScriptManager.RegisterStartupScript(Me, Me.GetType(), "RecordBottomGridRow", scriptText.ToString(), False) 
End Sub 

注意到「警告」在那裏。我運行代碼並激發事件,但沒有彈出窗口提示JavaScript代碼沒有運行。我究竟做錯了什麼?

+0

您的JavaScript代碼在Web瀏覽器中的外觀如何?您可以在瀏覽器中調試JavaScript代碼。 – yW0K5o 2014-10-27 17:55:03

+0

在頁面加載並調試javascript之後點擊f12,這將是我的第一個建議,fyi chrome比IE更容易調試 – QBM5 2014-10-27 17:59:25

+0

@ user3715441您是否調用了JavaScript函數RecordBottomGridRow? – yW0K5o 2014-10-27 18:04:43

回答

1

你的代碼只是聲明瞭函數,它在本質上只是增加你的頁面輸出:

function RecordBottomGridRow() { 
..... 
} 

您需要添加客戶端代碼實際上通過名稱調用這個函數:

RecordBottomGridRow(); 

所以在你的情況下,你可以只是替換線

scriptText.Append("} </script>") 

與(按照你的格式):

scriptText.Append("}") 
scriptText.Append(Environment.NewLine) 
scriptText.Append("RecordBottomGridRow(); </script>") 

該代碼塊用「}」結束函數聲明,然後將調用添加到函數中以在客戶端上實際執行它。