Asp.net

我可以否定使用“Eval”的屬性中的值嗎?

  • July 14, 2016

我想將按鈕的啟用狀態設置為值的否定。

所以給定這段程式碼:

<asp:CheckBox ID="DefaultChecked" 
             Checked='<%# Bind("IsDefaultMessage") %>' 
             Enabled="false" 
             runat="server" />

<asp:LinkButton ID="MakeDefaultButton" 
               runat="server" 
               CommandName="MakeDefault' 
               CommandArgument='<%# Bind("ResidentialInfoID") %>' 
               Text="Make Default" />

如果是,我如何製作 LinkBut​​tonEnabled屬性?false``IsDefaultMessage == true

使用 Eval 而不是 Bind。Bind 用於雙向綁定,即您需要能夠將數據保存回數據源的情況。

當你使用 Bind 時,編譯後的頁面實際上會生成使用 Eval 設置值的程式碼,以及一些讀取值以保存的程式碼。由於 Bind 已替換為生成的程式碼,因此您不能對 Bind 使用任何額外的邏輯。

<asp:CheckBox ID="DefaultChecked" Checked='<%# !(bool)Eval("IsDefaultMessage") %>' Enabled="false" runat="server" />
<asp:LinkButton ID="MakeDefaultButton" runat="server" CommandName="MakeDefault' CommandArgument='<%#Bind("ResidentialInfoID") %>' Text="Make Default"/>

引用自:https://stackoverflow.com/questions/611049