0

我这里有这段代码。所选索引是我的 C# 程序中的一个文本框。我的问题是,在将 SelectedIndex 的文本传输到函数之前,需要在 Show Popup 按钮上单击两次。我真的不知道是不是因为 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 回答