直接在gridview的aspx页面中编写代码以访问服务器端属性
本文关键字:代码 访问 属性 服务器端 gridview aspx | 更新日期: 2023-09-27 18:16:50
我有一个gridview,其中包含几个模板列,在第一个模板列,我有一个链接按钮(默认可见)和一个标签(默认隐藏)。
我已经设置了一个属性(IsPopup)在服务器端(aspx.cs文件)
现在我的要求是显示LinkButton和隐藏标签,如果IsPopup是真,反之亦然。
下面是代码示例aspx.cs代码
public bool IsPopup
{
get;
set;
}
aspx代码
<asp:GridView ID="gvEquipment" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="ID" meta:resourcekey="TemplateFieldResource2">
<ItemTemplate>
<asp:Label ID="lblCheckPointCode" runat="server" meta:resourcekey="lblCheckPointCodeResource1"
Text='<%# Bind("CheckPointCode") %>' Visible="False"></asp:Label>
<asp:LinkButton ID="lbtnCheckPointCode" runat="server" CausesValidation="False" CommandName="Edit"
meta:resourcekey="lbtnCheckPointCodeResource1" Text='<%# Bind("CheckPointCode") %>'></asp:LinkButton>
</ItemTemplate>
<ItemStyle Width="25%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
在上面的代码中,你可以看到标签默认为false。
当我尝试实现Visible='<# IsPopup '
出现以下错误:解析器错误消息:无法创建"System"类型的对象。布尔值'<# IsPopup '为'可见'属性。
试试这个:
<asp:Label ID="lblCheckPointCode" runat="server" meta:resourcekey="lblCheckPointCodeResource1"
Text='<%# Bind("CheckPointCode") %>' Visible='<%# IsPopup '></asp:Label>
<asp:LinkButton ID="lbtnCheckPointCode" runat="server" CausesValidation="False" CommandName="Edit"
meta:resourcekey="lbtnCheckPointCodeResource1" Text='<%# Bind("CheckPointCode") %>' Visible='<%# !IsPopup '></asp:LinkButton>
[Edit]另一种方法,您可以处理RowCreated事件:
void ProductsGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{
var lbl = e.Row.FindControl("lblCheckPointCode");
if(lbl != null) lbl.Visible = !IsPopup;
var lnk= e.Row.FindControl("lbtnCheckPointCode");
if(lnk!= null) lbl.Visible = !IsPopup;
}
使用Visible='<%# Bind("IsPopup ") %>'
设置控件的可见true或false