如何在不使用行数据绑定的情况下从代码中隐藏Asp.net LinkBut​​ton

时间:2019-03-19 20:40:32

标签: c# asp.net gridview webforms

如果数据库行中的字段为空,我试图在LinkButton中隐藏GridView。没有错误,但该行也未隐藏。这种方法可行吗?或者我必须使用OnRowDataBound来完成此操作吗?

这是aspx页面:

<asp:GridView ID="tblDownload" runat="server" AutoGenerateColumns="false" ClientIDMode="Static">
    <Columns>
        <asp:BoundField DataField="Description" HeaderText="Description" />                        
        <asp:TemplateField HeaderText="Download Link" SortExpression="Download Link">
            <ItemTemplate>
                <asp:LinkButton ID="ID" runat="server" Text="Download" OnClick="DownloadFile" CommandArgument='<%# Eval("ID") %>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

这是c#:

    public void BindTable()
    {
        try
        {                
            string constr = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;
            using (SqlConnection con = new SqlConnection(constr))

            {
                using (SqlCommand cmd = new SqlCommand("dbo.spAllRows", con))
                {
                    con.Open();
                    cmd.CommandType = CommandType.StoredProcedure;

                    using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
                    {
                        DataTable dt = new DataTable();
                        sda.Fill(dt);
                        tblDownload.DataSource = dt;
                        tblDownload.DataBind();                           
                    }
                    using (SqlDataReader sdr = cmd.ExecuteReader())
                    {
                        sdr.Read();
                        var FileName = sdr["FILE_NAME"].ToString();
                        con.Close();

                        if (FileName == "" || FileName == null)
                        {
                            LinkButton DownloadLink = tblDownload.FindControl("ID") as LinkButton;
                            DownloadLink.Visible = false;
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {

        }
    }

1 个答案:

答案 0 :(得分:0)

我认为您想要这样的东西。您可以使用三元运算符根据行中的值切换Visible属性。

<asp:LinkButton ID="ID" Visible='<%# string.IsNullOrEmpty(Eval("YourColumn").ToString()) ? false : true %>' 
    runat="server" Text="Download"></asp:LinkButton>