Как скрыть Asp.net LinkButton от кода без использования On Row Data Bound - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь скрыть 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 голосов
/ 20 марта 2019

Я думаю, вы хотите что-то подобное.Вы можете использовать троичный оператор для переключения свойства Visible на основе значения в строке.

<asp:LinkButton ID="ID" Visible='<%# string.IsNullOrEmpty(Eval("YourColumn").ToString()) ? false : true %>' 
    runat="server" Text="Download"></asp:LinkButton>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...