【问题标题】:Show/Hide Button depending on stored procedure return value根据存储过程返回值显示/隐藏按钮
【发布时间】:2015-10-19 11:07:43
【问题描述】:

我想就我遇到的问题寻求帮助。我有一个存储过程,它返回一个数据集来填充数据视图。数据网格的一列包含 2 个手动设置的按钮,“查看”和“添加”。这些按钮会打开一个新的弹出窗口,其中显示额外的信息等。如果返回的参数 POCount 计数中的 1 个等于 0,我希望能够隐藏一个“查看”按钮。即没有什么可以查看的排。实现这一点的最佳方法是什么。

我的存储过程是

SELECT PM.ProjectCode, 
       PM.ProjectDesc, 
       PM.Active, 
       PM.Chargeable,
       (SELECT COUNT(*) FROM POMaster PO WHERE PO.ProjectCode = PM.ProjectCode) AS POCount

FROM PROJECTMASTER PM

前端代码

<asp:TemplateField HeaderText="P.O. Number" ItemStyle-Wrap="false" >
<ItemTemplate>
<asp:LinkButton ID="linkPONumber" runat="server" Text="View" CssClass="buttonStyle" OnClick="LinkPONumber_Click" CommandArgument='<%# Eval("ProjectCode") + ";" + Eval("ProjectDesc") %>' ></asp:LinkButton>
  <asp:LinkButton ID="linkAddPO" runat="server" Text="Add" CssClass="buttonStyle" OnClick="LinkAddPO_Click" CommandArgument='<%# Eval("ProjectCode") + ";" + Eval("ProjectDesc") %>' ></asp:LinkButton> 
</ItemTemplate>                                                                                   
</asp:TemplateField>

代码背后

        private void BindGrid()
        {
            DSProjectDetails = objProjectMasterBL.GetProjectDetails();
            GvProject.DataSource = DSProjectDetails;
            GvProject.DataBind();
        }


        public DataSet GetProjectDetails()
        {
            try
            {
                SqlProcedureName = "USP_GetProjectListWithPO";
                SqlConnectionObject = DBConnection.InitializeConnection(SqlConnectionObject);

                dsrepeater = SqlHelper.ExecuteDataset(SqlConnectionObject, CommandType.StoredProcedure, SqlProcedureName);
                return dsrepeater;
            }
            catch (Exception ex)
            {
                log.Error("Exception in ProjectMasterBL.GetProjectDetails:", ex);
                throw ex;
            }
        }

抱歉,如果我发送了错误的代码部分,仍然处于菜鸟行列中

【问题讨论】:

    标签: html asp.net stored-procedures dataset


    【解决方案1】:

    您可以使用链接按钮的Visible 属性:-

     <asp:LinkButton ID="linkAddPO" runat="server" Text="Add" CssClass="buttonStyle" 
        OnClick="LinkAddPO_Click" Visible='<%# Convert.ToInt32(Eval("POCount")) == 0 %>'
       CommandArgument='<%# Eval("ProjectCode") + ";" + Eval("ProjectDesc") %>'>
     </asp:LinkButton> 
    

    只要您的 SP 以 0 的形式返回 POCount,您的 LinkBut​​ton 就会被隐藏。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 2018-03-29
      • 1970-01-01
      • 2021-11-16
      • 2016-08-19
      • 1970-01-01
      相关资源
      最近更新 更多