2012-10-02 54 views
1

我需要幫助的是:我在數據庫(MySql)中有一個名爲seq_orcamento的字段,它允許爲空,當它不爲空時,我需要在FormView中的一個LinkBut​​ton有一個SqlDataSource數據源)是可見的。我在我的選擇命令所做的是根據數據庫中存在的內容控制可見

SELECT CASE seq_orcamento WHEN NOT NULL THEN '1' ELSE '0' END AS idc_seq FROM log_transacao 

它工作正常,但有沒有辦法做一些綁定的,當idc_seq = 1 LinkBut​​ton的變得可見?

我使用的代碼背後有沒有問題,如果它的任何需要,我使用C#

回答

1

我找到了一種方法來做到這一點:在可見光propertie我添加的代碼

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

不知道它的工作原理又是因爲我需要使用它,只有當該網站發佈,我會稍後再試

+1

我的猜測是這可能會工作,雖然我通常在vb.Net工作,所以我沒有奢侈的'?'運營商。請注意,在某些情況下,Eval(「idc_seq」)不計算爲null,儘管基於您的查詢,它看起來總是爲'1'或'0'。如果需要的話,你可以使用一個代碼隱藏函數,它將'Eval(「idc_seq」)'作爲'object',做一些空的檢查,並返回'string'。 – pseudocoder

+0

但是這個函數返回的字符串如何被視爲LinkBut​​ton可以解釋爲'visible = true'或'visible = false'的東西? –

+0

如果你在上面輸入了你的綁定表達式,例如'Visible ='<%#DetermineVisible(Eval(「idc_seq」)%>'',則'DetermineVisible()'的字符串結果將被分配給Visible屬性,就像你手動輸入你的標記(所以你會想要返回'真'或'假') – pseudocoder

1

可以使用FromView控制的DataBound事件

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;} 

    } 
+0

我試圖避免這種情況,這看起來並不是理想的方式 –