【问题标题】:The control didnt' hide even the script is run即使脚本运行,控件也没有隐藏
【发布时间】:2016-10-03 13:21:37
【问题描述】:

我在 aspx 页面上有 2 个面板。加载页面时,将显示 step1 面板。用户点击按钮后。我检查数据并显示 step2 面板,在该面板中,我在后面的代码中将数据显示到中继器控件中。有一个“返回”按钮。当用户单击此按钮时,我需要隐藏第 2 步面板并再次显示第 1 步面板。我的问题是当用户单击后退按钮时。我可以看到 step1 已显示但消失了,然后 step2 面板仍然存在。有人可以帮我解决这个问题。提前致谢

有我的aspx页面:

<asp:panel id="pnlStep1" runat="server" visible="False"  >   
<asp:label id="lbl" text="The order is ....."/> 
  <asp:Button id="btnNext" runat="server" text="Next" cssclass="btn"/>
</asp:panel>

<asp:panel id="pnlStep2" runat="server" visible="False"  >            
  <fieldset class="fldBoxy"><legend class="fldLegend">Conflicts</legend>
    <table class="tbl w100p" border="0">
      <tr>
        <td class="field100">
          <asp:repeater id="repConflicts" runat="server" >
            <itemtemplate>
              <%# DataBinder.Eval(Container.DataItem, "Details") %>
              <br/>
            </itemtemplate>
          </asp:repeater>
          <asp:label id="lblNoConflicts" runat="server" visible="False" text="No conflicts were found."></asp:label>
        </td>
      </tr>
    </table>
  </fieldset>

  <div class="savechanges">
    <table class="w100p" >
      <tr>
        <td class="talgnL" ><asp:Button ID="btnBack"  Text="Back" runat="server" CssClass="btn" OnClientClick="hideStep2()"/>
        </td>
        <td>
          <asp:Button id="btnSave" runat="server" text="  Change" cssclass="btn"  />
         <input class=" btn" onclick="self.close();" type="button" value="Cancel" />
        </td>
        <td></td>
      </tr>
    </table>
  </div>
</asp:panel>

有我的 javascritp:

<script language="javascript" type="text/javascript">
  function hideStep2(){
    var pln = document.getElementById("pnlStep2");
    if (pln != 'undefined') {
      alert('24');                   
      pln.style.visibility = "hidden";
      pln.style.display = "none";   
      document.getElementById("pnlStep1").style.display = "block";
    }
  }
</script>

【问题讨论】:

  • 尝试评论pln.style.visibility = "hidden";
  • 你有一个流氓disableafterclick="True"&gt;,它不包含在任何标签中
  • @Verdolino。有剪切和粘贴错误。我编辑了它。谢谢。

标签: javascript vb.net


【解决方案1】:

这似乎是一种不寻常的方式。在没有看到您的后端代码的情况下,我只是在猜测,但这都可以在服务器端完成。

将panel1改为visible=true,然后使用按钮上的onclick事件将其切换为false,将panel2切换为true。

然后使用后退按钮上的onclick事件将panel1切换为visible=true,将panel2切换为false。

这意味着不需要任何 javascript。

【讨论】:

  • @Jamestbr,我已经在vb上应用了将开关panel1设置为visible=true,panel2设置为false的方式。但是使用这种方式弹窗会有很大的空间。
  • 不太明白你的意思。如果控件设置为 visible="false",则它不会在浏览器上呈现,因此不会导致任何大的空白空间。您是否考虑过使用 asp.net Wizard 控件来实现这种逻辑?
猜你喜欢
  • 2022-08-11
  • 1970-01-01
  • 1970-01-01
  • 2015-04-17
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多