C# 控件是否可见取决于数据库中存在的内容

C# 控件是否可见取决于数据库中存在的内容,c#,asp.net,mysql,data-binding,C#,Asp.net,Mysql,Data Binding,我需要的帮助是:我在数据库MySql中有一个名为seq_orcamento的字段,它允许null,当它不为null时,我需要FormView中的一个链接按钮,该按钮的数据源为SqlDataSource。我在select命令中所做的是 SELECT CASE seq_orcamento WHEN NOT NULL THEN '1' ELSE '0' END AS idc_seq FROM log_transacao 它工作得很好,但是有没有一种方法可以进行某种绑定,当idc_seq=1时,Lin

我需要的帮助是:我在数据库MySql中有一个名为seq_orcamento的字段,它允许null,当它不为null时,我需要FormView中的一个链接按钮,该按钮的数据源为SqlDataSource。我在select命令中所做的是

SELECT CASE seq_orcamento WHEN NOT NULL THEN '1' ELSE '0' END AS idc_seq FROM log_transacao
它工作得很好,但是有没有一种方法可以进行某种绑定,当idc_seq=1时,LinkButton变得可见


使用代码隐藏没有问题如果有必要,我使用的是C

您可以使用FromView控件的数据绑定事件

protected void FormView1_DataBound(object sender, EventArgs e)
    {
       DataRowView dataRow = ((DataRowView)FormView1.DataItem);
       LinkButton lb= (LinkButton )FormView1.FindControl("LinkButton ");

       if (Convert.ToBool(DataBinder.Eval(formview.DataItem, "idc_seq") ) )
        { lb.visible=true;     }
       else{lb.visible=false;}

     }

我找到了一种方法:在Visible属性中添加了代码

Visible='<%# Eval("idc_seq") == "1" ? true : false %>'

我不知道它是否有效,因为我只需要在网站发布时使用它,我会在以后尝试它

我试图避免这种情况,这看起来不是理想的方法。我猜这可能会有效,尽管我通常在vb.Net中工作,所以我没有奢侈的软件?操作人员请注意,Evalidc_seq在某些情况下不会计算为null,尽管根据您的查询,它看起来总是“1”或“0”。如有必要,您可以使用以Evalidc_seq为对象的代码隐藏函数,执行一些空检查,并返回字符串。但如何将此函数返回的字符串视为LinkButton可以解释为visible=true或visible=false的字符串?如果您按照上面键入的方式执行绑定表达式,例如visible=,DetermineVisible的字符串结果将被分配给Visible属性,就像您在标记中手动键入它一样,因此您将希望返回'true'或'false'谢谢,如果我这样做不起作用,我将尝试您所说的,但有一个问题:在代码背后我如何处理evalidcseq?我从未在代码背后使用Eval或Bind。Eval函数如何从哪个SqlDataSource知道我要执行Eval?