0

ここにこのコードがあります。選択したインデックスは、私の C# プログラムのテキスト ボックスです。私の問題は、SelectedIndex のテキストを関数に転送する前に、[ポップアップの表示] ボタンを 2 回クリックする必要があることです。getElementByID().innerHTML() が原因かどうかはわかりません。

  <asp:Button ID="Button1" runat="server" Text="Show Popup" 

  OnClientClick="ShowPopUp('#SelectedIndex');" onclick="Button1_Click1" />



<script type="text/javascript">

    ShowPopUp = function() {

        var x = document.getElementById('<%=SelectedIndex.ClientID %>').innerText;

        window.showModalDialog('CopyFiles/'+x, window, 'dialogWidth:800px;dialogHeight:800px;center:yes;resizable:0;status:0;scrollbars:no;menubar:0;titlebar:no;toolbar:0;');

   }

誰でも?誰が私を助けることができます?:X よろしくお願いします。

4

1 に答える 1

1

ボタンがクリックされてポストバックが発生するまで、選択したインデックスが設定されないためのようです。サーバー側の変数で getElementById の値を設定する代わりに... 代わりに... javascript を使用して選択したドロップダウンの値を取得する方法を見てください。

例えば。選択したドロップダウン値を JavaScript で取得するコード。

<select id="ddl">
  <option value="1">one</option>
  <option value="2">two</option>
</select>

var myDDL = document.getElementById("ddl");
var val = myDDL.options[myDDL.selectedIndex].value;

コードの微調整 (テストされていません)。

  <asp:Button ID="Button1" runat="server" Text="Show Popup" 
  OnClientClick="ShowPopUp();" onclick="Button1_Click1" />

<script type="text/javascript">

    function ShowPopUp() 
    {
        var myDDL = document.getElementById("ddl");
        var val = myDDL.options[myDDL.selectedIndex].value;    

        //var x = document.getElementById('ddl').innerText;

        window.showModalDialog('CopyFiles/' + val, window, 'dialogWidth:800px;dialogHeight:800px;center:yes;resizable:0;status:0;scrollbars:no;menubar:0;titlebar:no;toolbar:0;');

   }
于 2013-04-26T02:04:48.033 に答える