我一直在研究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。 在此先感谢
答案 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;
}
}