正在检查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。提前感谢

正在检查Gridview是否包含特定的Bind属性

您可以尝试以下操作:

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