theme,code block

//aspx

<script type="text/javascript">
var data1;
function validate(){
    if(data1 == '<%= serverData %>')  return true;
    return false
}

てなコードがあったとして。
ページの初期化で
//aspx.cs

 protected override void OnPreInit(EventArgs e){
                this.Theme = "aTheme";
}

とやると、期待するのはserverDataが置き換えられて且つ指定テーマが適用されることなのだが

コントロールにコード ブロック (<% ... %>) が含まれているため、コントロールのコレクションを変更できません。

だと。<%= を<%# に置き換えてDataBindすれば解決するのだが、そのScriptブロックをrunat="server"できるのか?でなければページ全体をバインドすることになってしまうのだが。

<link runat="server" id="substyle" rel="stylesheet" type="text/css" />

これは極悪ですか?スタイルシートのみ動的になるけど。