【问题标题】:Panel inside button not working properly in asp.net面板内部按钮在 asp.net 中无法正常工作
【发布时间】:2017-09-07 23:02:01
【问题描述】:

在我的应用程序中,我有 3 个面板对应的锚标记。最初,当页面加载时,第一个面板可见,其余两个面板处于禁用状态。当我单击第二个锚标记时,它一旦显示就不会显示,因为当我单击按钮数据未正确显示时,我需要在单击锚标记时显示相应的面板数据将显示

【问题讨论】:

  • 我不明白什么不起作用。我点击第一个链接,它显示pnl1。我单击第二个链接,它显示用户名下拉列表和日期下拉列表和一个按钮 GET。我点击第三个链接,它显示User Details。不正确吗?
  • 你已经展示了你想要的,并且你已经付出了很好的努力,正如我们所看到的。你能告诉我们你从你已经做过的事情中得到了什么吗?
  • 当我单击第二个链接时,它显示数据并填充数据,获取单击 GET 按钮的详细信息(按钮内的面板)当我单击链接时它不再显示详细信息,它似乎正在获取数据列表
  • 所以你基本上想要跟随。如果 SpPw.Click -> pnlPw.Show、pnlAw.Hide、pnlUd.Hide 以及在所有其他情况下类似,对吗?

标签: c# jquery html asp.net


【解决方案1】:

从您的代码中删除以下部分。

   $("#<%= btnGetAct.ClientID %>").click(function () {
      $("#<%= pnlPw.ClientID %>").hide();
      $("#<%= pnlAct.ClientID %>").show();
      $("#<%= pnlUserdetails.ClientID %>").hide();               
   });

您从双方都调用此Click。从您的客户端和服务器端来看,所以我认为它正在造成冲突,因此您没有得到您想要的输出。

【讨论】:

    【解决方案2】:

    您可以在 $(document).ready 函数中删除面板的显示/隐藏初始化,以防止每次加载页面时重置为初始状态,例如当您单击 GET 按钮时。

    您可以直接在您的 aspx 代码中设置此初始状态,将 display:none 设置为您想要在开始时隐藏的面板:

    <asp:Panel ID="pnlAct" runat="server" Style="display:none;"> [...] </asp:Panel>
    <asp:Panel ID="pnlUserdetails" runat="server" Style="display:none;"> [...] </asp:Panel>
    

    在您的 JavaScript 中注释/删除这些行:

    //$("#<%= pnlPw.ClientID %>").show();
    //$("#<%= pnlAct.ClientID %>").hide();
    //$("#<%= pnlUserdetails.ClientID %>").hide();
    

    那么,你的代码应该可以正常工作了。

    【讨论】:

    • 嗨,@krlzx,当我单击按钮 GET 时,它不再工作了同样的问题,当我再次单击第二个链接时,它会禁用所有详细信息。
    • 好吧,我尝试修复您描述的元素显示问题。对于用户数据的显示,如果没有任何代码隐藏代码,很难修复。您应该发布相关的代码隐藏代码,并可能使用图像、工作流程来解释您的按钮/链接应该发生什么,以更好地帮助您。
    猜你喜欢
    • 1970-01-01
    • 2013-03-25
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 2010-11-27
    • 2015-01-31
    • 1970-01-01
    相关资源
    最近更新 更多