如果属性为空,则ASP.NET(NO JS!)隐藏DataGrid行中的按钮

时间:2014-09-04 09:57:41

标签: asp.net datagrid

我在SQL查询后从datatable中获取了一个ASP.NET DataGrid数据绑定。 DataGrid中填充了组织员工个人信息。 每一行都包含"发送问候"按钮。 如果"电子邮件地址"我想禁用或隐藏此按钮。如果电子邮件地址为空,则该行中的单元格。

我的ASP代码:

    <table dir="rtl">
<tr>
    <asp:Label ID="lbl1" runat="server" CssClass="bDayLable" Text="Select a rpw and click on button to send greeting"></asp:Label>
</tr>
<tr>
    <td colspan="2">
        <div id="divMyPath" runat="server"></div>
        <div id="divResults" runat="server">
            <asp:DataGrid ID="grdResult" runat="server" BorderColor="#CCCCCC" BorderWidth="2px" Font-Bold="False" Font-Italic="False" Font-Names="Segoe UI" Font-Overline="False" Font-Size="13px" Font-Strikeout="False" Font-Underline="False" HorizontalAlign="Right" AutoGenerateColumns="False"  Cellpadding="2" CellSpacing="2" AllowPaging="True" PageSize="4" AllowSorting="True" OnPageIndexChanged="grdResult_PageIndexChanging">
                <Columns>
                    <asp:TemplateColumn>
                        <ItemTemplate>
                           <%-- <img src="\\blabla\pictures\<%# Eval("Employeeno")%>.JPG" class="phoneBookImage" />--%>
                            <img src="http://intranet.somedomain.com/UserProfiles/pictures/<%# Eval("Employeeno")%>.JPG" class="phoneBookImage" />
                        </ItemTemplate>
                    </asp:TemplateColumn>                    
                    <asp:TemplateColumn HeaderText="Employee Name">
                        <ItemTemplate>
                            <%# Eval("firstname") & " " & Eval("surname")%>
                        </ItemTemplate>
                    </asp:TemplateColumn>
                   <%-- <asp:BoundColumn DataField="EmailAdd" HeaderText="Email" DataFormatString="{0:n2}"></asp:BoundColumn>--%>
                     <asp:TemplateColumn HeaderText="Email">
                        <ItemTemplate>
                            <a href='mailto:<%# Eval("EmailAdd")%>'> <%# Eval("EmailAdd")%> </a>
                        </ItemTemplate>
                    </asp:TemplateColumn>
                    <asp:TemplateColumn HeaderText="Greeting">
                        <ItemTemplate>
                            <asp:Button ButtonType="Button" ID="btnSendGreeting" runat="server" CssClass="btnSendGreeting" Text="Send Greeting" Visible="true" />                                
                        </ItemTemplate>
                    </asp:TemplateColumn>
                </Columns>
                <FooterStyle BackColor="#00CC00" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
                <HeaderStyle BackColor="Gray" Font-Bold="True" Font-Italic="False" Font-Names="Segoe UI" Font-Overline="False" Font-Size="Small" Font-Strikeout="False" Font-Underline="False" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" />
                <SelectedItemStyle BackColor="#CCFFCC" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
            </asp:DataGrid>
        </div>
    </td>
</tr>

我的代码后面包含从Data Table填充DataGrid的函数。 在此先感谢!!!

1 个答案:

答案 0 :(得分:0)

尝试设置Enabled(或Visible)属性,如下所示:

<asp:Button ButtonType="Button" ID="btnSendGreeting" runat="server" CssClass="btnSendGreeting" Text="Send Greeting" Enabled='<%# Eval("EmailAdd") != null && !String.IsNullOrEmpty(Eval("EmailAdd").ToString()) %>' />

您可以在'&lt;%#%&gt;'之间添加各种表达式。