【问题标题】:how to Show/Hide button C# ASP.Net <No Panel>如何显示/隐藏按钮 C# ASP.Net <无面板>
【发布时间】:2017-03-30 05:13:21
【问题描述】:

我有以下代码

<div class="modal‐footer">
<div class="row">
  <div class="col-md-6" runat="server" id="d1">
    <asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" CssClass="btn btn-info btn-block invisible" Text="Update" />
  </div>
  <div class="col-md-6" runat="server" id="d2">
    <asp:Button runat="server" ID="SubmitBtn"  OnClick="SubmmitBtn_Click" CssClass="btn btn-success btn-block" Text="Submit" />
  </div>
  <div class="col-md-6" runat="server" id="d3">
    <asp:Button runat="server" ID="ApproveBtn" OnClick="ApproveBtn_Click" CssClass="btn btn-success btn-block" Text="Approve" />
  </div>
  <div class="col-md-6" runat="server" id="d4">
    <asp:Button runat="server" ID="RejectBtn" OnClick="RejectBtn_Click" CssClass="btn btn-danger btn-block" Text="Reject" />
  </div>
</div>
</div>

在有条件的情况下,我只需要显示更新按钮。例如,

if a=="Pending"; only UpdateBtn will be shown. 

目前我无法使用面板(即使它是成功的,因为如果我使用面板,我的功能将被破坏)

请帮我解决这个问题。我阅读了很多论坛并尝试了很多方法,但都失败了。

这就是我在后面的代码中声明 (aa) 的方式:public string rfcStatus

这是返回代码:

namespace AA.Search
{
public partial class Default : System.Web.UI.Page
{
    private string _searchText;
    public string aa;
    public string poaQa = "No";
    SearchMgt search = null;


    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (User.Identity.IsAuthenticated)
            {
                if (Request.QueryString["idno"] != null)
                {
                    _searchText = Request.QueryString["idno"];
                    SearchText.InnerHtml = _searchText;
                    aa = "Pending"
                    BindData();
                }
            }
            else
            {
                Response.Redirect("~/AccessDenied.aspx");
            }
        }
    }

【问题讨论】:

  • 您是否尝试过使用 div id 或 button id?你想在哪里处理这个,服务器端还是客户端?
  • 你可以用c#代码做到这一点,例如隐藏除UpdateBtn之外的所有按钮,RejectBtn.Visible = false;
  • Arshad,是的,我都试过了,但我无法隐藏/显示按钮。它是服务器端
  • Murad,如果我使用 Panel (Visibility:false/true),我可以处理它,但我不能使用 Panel,因为我的功能会损坏

标签: c# jquery asp.net .net


【解决方案1】:

试试这个 Javascript 代码

<script type="text/javascript">
$(function hideButton() {
document.getElementById('<%=Button1.ClientID %>').style.visibility = "hidden";
}); 
<script>

您可以在 C# 代码中使用 RegisterClientScriptBlock 调用此函数

【讨论】:

  • 您好,您能详细说明一下吗?
【解决方案2】:

这很简单。确保在后面的代码中将“a”声明为公共变量,并使用如下代码。对不起格式..

<%
    if (a== 1)
    { %>
  <div class="col-md-6" runat="server" id="d1">
<asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" CssClass="btn btn-info btn-block invisible" Text="Update" />

<%} %><div class="col-md-6" runat="server" id="d2">
<asp:Button runat="server" ID="SubmitBtn"  OnClick="SubmmitBtn_Click" CssClass="btn btn-success btn-block" Text="Submit" />

编辑

后面的代码

public partial class _default : System.Web.UI.Page
{
    public string rfcStatus;

    protected void Page_Load (object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            rfcStatus = "1";
        }

    }
}

标记

<div class="modal‐footer">
<div class="row">
<%
    if (!string.IsNullOrEmpty(rfcStatus))
    {
        if (rfcStatus== "1")
        { %>
        <div class="col-md-6" runat="server" id="d1">
        <asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" CssClass="btn btn-info btn-block invisible" Text="Update" />
        </div>
        <%
        }
    } %>

【讨论】:

  • 是的 Ratheesh,a 是公开的,但是,当我执行此方法时,它没有调用值(接受为 null)。这种方法对我无效。我不知道为什么
  • 能否把后面的代码贴一下。确保 a 在页面加载时或之前初始化...如果您不想初始化,请相应地处理标记处的条件
  • 尝试改变后面代码中rfcStatus的值,看看效果如何。
【解决方案3】:

最好的方法是简单的三元运算符

  <asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" 
    CssClass="btn btn-info btn-block invisible" Text="Update" 
      visible=" <%= aa == 'Pending' ? "true" : "false"; %> "/>

试试这个,文件后面的代码

  public bool IsUpdateBtnVisible{get;set;}
    if( aa = "Pending") 
     {
       IsUpdateBtnVisible=true;
     }
    else
      {
        IsUpdateBtnVisible=false;
      }

ASPX 页面:

<asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" 
  CssClass="btn btn-info btn-block invisible" Text="Update" 
   visible="<%# IsUpdateBtnVisible %>"/>

【讨论】:

  • 用单引号而不是双引号更改服务器标签,将“”引号删除为''更改可见=' '/>
【解决方案4】:

根据我的理解,我认为您应该执行以下操作。

js

$(function() {
  var aa = ""; // Global Variable

  var btnID = $("#d1"); //Obtain element desired

  if (aa === "pending") { //Used strictly equals for precision.

    $(btnID).show(); //Make sure your buttons are hidden initially if needed with .hide()

  } else {
    $(btnID).hide();
  }
});

aspx

<div class="col-md-6" runat="server" id="d1">
  <asp:Button runat="server" ID="UpdateBtn" OnClick="UpdateBtn_Click" CssClass="btn btn-info btn-block invisible" Text="Update" />
</div>

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-10-12
    • 2012-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多