正在检查Gridview是否包含特定的Bind属性
本文关键字:Bind 属性 包含特 是否 检查 Gridview | 更新日期: 2023-09-27 17:57:31
我一直在开发ASPX网络表单应用程序,其中我有一个具有文本框控件的网格视图。我的问题是,我只想在这个文本框具有"绑定属性"时为它设置"文本"值。
<asp:GridView ID="grvShowRecord" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
-- Something like this, i don't know how to write in ASPX, but in Razor it will be something like
@{
if(Bind("txtValue")!=null) -- IF gridview has Bind("txtValue") property then show textbox else show label
{
<asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("txtValue") %>' ></asp:TextBox>
}
else
{
<asp:Label ID="lblValue" runat="server" Text="0" ></asp:TextBox>
}
}
</ItemTemplate>
</asp:TemplateField>
</Columns>
注意:最初在页面加载时绑定Gridview时,我不使用任何Bind属性,但后来我会设置此Bind属性并再次绑定Gridview。提前感谢
您可以尝试以下操作:
<asp:TemplateField HeaderText="Value">
<ItemTemplate>
<asp:TextBox ID="txtValue" runat="server" Text='<%# Bind("txtValue") %>' Visible='<%# !IsNullValue("txtValue") %>' />
<asp:Label ID="lblValue" runat="server" Text="0" Visible='<%# IsNullValue("txtValue") %>' />
</ItemTemplate>
</asp:TemplateField>
在代码背后定义了这个实用函数:
protected bool IsNullValue(string fieldName)
{
try
{
object value = Eval(fieldName);
return Convert.IsDBNull(value) || value == null || value.ToString() == string.Empty;
}
catch
{
return true;
}
}