删除gridview中特定单元格的超链接

时间:2015-12-10 16:54:44

标签: c# asp.net gridview hyperlink

我创建了一个gridview,其中所有值(包含的页脚)都是超链接,用于在Excel中导出详细信息。

一切正常,但是当值为0时,我不想允许超链接,因此它不会创建一个空的excel。

<asp:GridView ID="dtlist" runat="server" CellPadding="0" CssClass="table tabela caixa " CellSpacing="0" OnRowDataBound="dtlist_RowDataBound" AutoGenerateColumns="false" GridLines="Vertical" BorderStyle="Solid" ShowFooter="true" >
<Columns >
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Eval("name") %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="LabelT" runat="server" Text="Total"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
<asp:HyperLink runat="server" ID="lnkA" NavigateUrl='<%# String.Format("/Export?name={0}, Eval("name")) %>' Text='<%# Eval("value","{0:#####,##0.00 €}") %>' />
<asp:Label runat="server" ID="lblA" Text='<%# Eval("value","{0:#####,##0.00 €}") %>' Visible="false" />
</ItemTemplate>
<ItemStyle CssClass="alinha-direita" />
<FooterTemplate>
<asp:HyperLink runat="server" ID="lnkTA" />
</FooterTemplate>
<FooterStyle CssClass="alinha-direita" />
<HeaderStyle CssClass="alinha-meio" />
</asp:TemplateField>
</Columns>
</asp:GridView>

这是RowDataBound:

protected void dtlist_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        Total = 0;
    }

    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hA = (HyperLink)e.Row.FindControl("lnkA");
        Label lA = (Label)e.Row.FindControl("lblA");

        if (hA.Text.ToDecimal() == 0)
        {
            hA.Visible = false;
            lA.Visible = true;
        }

        Total += ((DataRowView)e.Row.DataItem).Row["Ano0"].ToDecimal();
    }

    if (e.Row.RowType == DataControlRowType.Footer)
    {
        HyperLink tA = (HyperLink)e.Row.FindControl("lnkTA");
        tA.NavigateUrl = String.Format("/ExportStock?name={0}","ZZZZ");
        tA.Text = Total0.StringEuro();
    }
}

我试图询问e.Row.RowType == DataControlRowType.DataRow,如果超链接的值为0,但如果列上的一个值为0,则会禁用该列上的所有超链接。

如何仅删除0单元格?

感谢。

CODE UPDATED

0 个答案:

没有答案