而是在*.cs中, 使用一段前台已經寫好的js功能
此篇介紹的是作用於page內, 而非updatepanel中的js, updatepanel的請參見頁尾的msdn
假設前台(*.aspx)中有這麼一段<script>
<script type="text/javascript">
var optionSubjectBar = {
'title': 'Nya~',
'width': 200,
'height': 300,
vAxis: { minValue: 0 }
};
...................
function drawAxisTickColors() {
var dataAudit = google.visualization.arrayToDataTable([
chart.draw(dataAudit, optionAuditStackedBar);
}
function clicktest() {
var data = new google.visualization.DataTable();
...................
chart.draw(data, optionAuditStackedBar);
};
</script>
在要執行該段js的C#語法中視需求插入即可
例如我想要使用「clicktest()」這個功能
(*.cs)後台
建構式為public static void RegisterStartupScript( Page page, Type type, string key, string script, bool addScriptTags )
- page:一般用「Page」就對了
- type:一般用「GetType()」就對了
- key:給後面的指令碼有個識別值, 像是ID般的存在, 不一定要跟function相同名稱
- script: 當然就是要執行的function了,以這個例子就是輸入「clicktest()」,要直接寫一段程式碼也是可以
- addScriptTage:true或false, 只是會不會加上<script>...<script>而已
ScriptManager.RegisterStartupScript(Page,GetType(),"clicktest","clicktest()",true)
如果在addScriptTags用false, 那就要寫成「<script>clicktest()<script>」
通常為了避免重複一直註冊key, 會多加上判斷式
-----------------------------------------------------------------------------------------------------------------------------------------------
{
ScriptManager.RegisterStartupScript(Page,GetType(),"clicktest","<script>clicktest()</script>",false)
}
-----------------------------------------------------------------------------------------------------------------------------------------------
對於單純的page也許不太需要, 但是會不斷刷新的ajax就可以節省頻寬喔
使用UpdatePanel的話,請參考這MSDN的設定:(點我前往)
另外這篇文章也不錯,說明三種註冊方法的差異(本文只使用其中一種):動態註冊JavaScript至Client端
參考資料: