- PR -

DropDownListのAutoPostBackでエラー発生

1
投稿者投稿内容
ぽちぽち
会議室デビュー日: 2008/11/03
投稿数: 2
投稿日時: 2008-11-03 09:59
はじめて投稿させていただきます。

DropDownListを選択したイベントでPostbackさせたいと思い、
AutoPostBack=trueとしたのですが、うまくイベントが発生せず、
ブラウザでは「ページでエラーが発生しました」と表示されます。
詳細を見ると「文字が正しくありません」という内容です。

AutoPostBack=trueで自動的に生成されたHTMLのソースを表示させると、

<前略>
<script type="text/javascript">
<!--
var theForm = document.forms['Form1'];
if (!theForm) {
theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// -->
</script>

<中略>

<select name="ddlDataType" onchange="javascript:setTimeout('__doPostBack(\\'ddlDataType\\',\\'\\')', 0)" language="javascript" id="ddlDataType" style="font-size:10px;width:198px;">

<後略>


このonchangeのイベントのsetTimeout()を削除して
以下のようにするとうまくPostbackされるようです。

onchange="javascript:__doPostBack('ddlDataType','')"

AutoPostBackが使えないと非常に不便です。
何か解決策をご存知の方、ご教授いただけませんでしょうか?

開発環境はVS2008SP1のASP.NET、OSはXPSP3です。
IE6およびIE7で動作確認ずみです。
よろしくお願いいたします。



ぽちぽち
会議室デビュー日: 2008/11/03
投稿数: 2
投稿日時: 2008-11-04 18:43
自己レスですが、解決しました。

javascriptの<script>タグの前に、vbscriptの<script>タグを記述したために
エラーとなっていたようです。
vbscriptの<script>タグを削除したらうまくPostbackされました。

混在させると動作がおかしくなるので、vbscriptを使わないよう
修正したいと思います。

お騒がせしました。
1

スキルアップ/キャリアアップ(JOB@IT)