1

ASPX ページで VB スクリプトを使用しています。反復ごとに、Page _load の codeBehind でそのスクリプトを For ループで使用する必要があります。

私のコードは:- (VBスクリプトを使用した.ASPXページ。)

<script type="text/vbscript" language="vbscript" >
sub wordit()
'Opens Word application and does some process   
end sub
</script>

VB コード ビハインド パーツ:-

          For i As Integer = 1 To colSelRowIndex

            CheckboxTemplateId = colSelRowKeys(i).ToString 'I get the ID from here 
            ViewState("TemplateID") = CheckboxTemplateId 'I need to send the value to the sub routines 
            hen()'sub
            den()'sub
            cs.RegisterStartupScript(cstype, csname1 & i, "wordit();", True)
        Next

ループから ID のワード ドキュメントと別の ID の別のドキュメントを開く必要があります。

4

1 に答える 1

2

これを試して:

For i As Integer = 1 To 10
    cs.RegisterStartupScript(cstype, csname1 & i, "wordit();", True) 
Next

その関数呼び出しの 2 番目の引数は、一意のキーを探しています。これは、誤って同じスクリプトをプログラムで複数回追加することを防ぐための機能です。わざとやりたい場合は、毎回ユニークキーが必要です。

しかし、これをやりたいということは、何が起こっているのかについて根本的な誤解をしている可能性があることを示しています。サーバー コード (Page_Load を含む) が実行されている間、Web ブラウザーのクライアント ページは存在しません。サーバー コードの目的は常に、Web 要求に対する html 応答を生成することです。サーバー コードは、ページ DOM を直接操作することはできません。

これは明らかに、セッション内のページへの最初のリクエストに当てはまります。サーバーは最初に最初のページを生成してクライアントに送信する必要があります。ただし、その後のポストバックでも、ブラウザーはページの前のインスタンスを破棄します。サーバーは、ページ全体を最初から再構築する必要があります。毎日。時間。これが発生している間、ブラウザ ウィンドウで見ているページは、一種の残像にすぎません。ブラウザーは以前の DOM を破棄しており、サーバーがまったく新しい HTML セットを提供するのを待っています。

また、javascript ではなく vbscript を使用していることにも疑問を感じます。vbscript を使用すると、ページが Internet Explorer でのみ動作することがほぼ保証されます。

于 2013-11-25T21:16:45.423 に答える