显示/隐藏按钮取决于存储过程返回值

时间:2015-10-19 11:07:43

标签: html asp.net stored-procedures dataset

我想在我遇到的问题上获得一些帮助。我有一个存储过程,它返回一个数据集来填充datagriview。其中一个数据网格列包含2个手动设置按钮,'查看' &安培; '添加&#39 ;.这些按钮打开一个新的弹出窗口,显示额外的信息等。我希望能够隐藏一个' View'如果返回的参数1中的1,POCount,count等于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;
            }
        }

如果我发送了错误的代码段,仍然居住在菜鸟队伍中,请道歉

1 个答案:

答案 0 :(得分: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将POCount作为0返回时,您的LinkBut​​ton将被隐藏。