2015-10-19 44 views
1

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

道歉,如果我发送的代码错误的部分,仍然居住在noob行列

回答

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返回POCount0,你的LinkBut​​ton将被隐藏。

+1

这工作出色。非常感谢你 – MollyMoo