我正在寻找一种基于条件将值绑定到GridView
控件的列的解决方案。
假设我有一个财产:
public bool Perm
{
get;
set;
}
基于该属性,我想将绑定字段设置为特定值。
我在这里得到一个列表:
List<MyObject> obj = myservice.GetData().toList();
MyObject
具有属性FullBankAcc
和HiddenBankAcc
。
基于Perm
属性的值,我想显示一个值或另一个值:
if (Perm)
{
// bind a column to a HiddenBankAcc
}
else
{
// bind a column to a FullBankAcc
}
这是GridView
列:
<asp:BoundField DataField="Display the value based on a property" HeaderText="ABA"/>
我该怎么做?
答案 0 :(得分:0)
一种方法是在MyObject类中添加另一个只读字段,该字段包装所需的逻辑并将列绑定到该字段。
public string DisplayValue
{
get {
if (Perm)
{
return HiddenBankAcc;
}
else
{
return FullBankAcc;
}
}
}
答案 1 :(得分:0)
如果您切换到TemplateField
,则可以内联。
<asp:TemplateField HeaderText="BankAcc">
<ItemTemplate>
<%# string.IsNullOrEmpty(Eval("HiddenBankAcc").ToString()) ? Eval("FullBankAcc") : Eval("HiddenBankAcc")%>
</ItemTemplate>
</asp:TemplateField>
或作为布尔值
<asp:TemplateField HeaderText="BankAcc">
<ItemTemplate>
<%# Convert.ToBoolean(Eval("FullBankAcc")) ? Eval("FullBankAcc") : Eval("HiddenBankAcc")%>
</ItemTemplate>
</asp:TemplateField>
答案 2 :(得分:0)
1。)在页面代码中的
后面创建函数。 public string DisplayValue(Perm)
{
if (Perm)
{
return HiddenBankAcc;
}
else
{
return FullBankAcc;
}
}
2。)假设变量“ Perm”的值在asp页面的gridview数据源中
<asp:BoundField HeaderText="ABA">
<asp:Label runat="server" Text='<%# DisplayValue((bool)Eval("Perm"))%>' </asp:Label>
</asp:BoundField>