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

时间:2016-07-18 11:25:53

标签: c# asp.net gridview aspxgridview itemtemplate

我一直在研究ASPX webform应用程序,我有一个带有文本框控件的gridview。我的问题是,我只想在它具有绑定属性时为此文本框设置文本值。

<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。 在此先感谢

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

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