Com*_*umb 4 c# asp.net user-controls
我已经完全掌握了Web用户控件和更改<div>父ASPX中的可见性.
我有一个位于用户控件内的购物车,其中一个页面包含了UC,其状态<div>显示了购物车内容的摘要.如果购物车是空的,则表示不同<div>.
UC中的代码
if (varCartStatus)
{
cartStatusTrue.Visible = true;
cartStatusFalse.Visible = false;
else
{
cartStatusTrue.Visible = false;
cartStatusFalse.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)
我目前得到的是当前上下文中不存在'cartStatusTrue'.'cartStatusFalse'在当前上下文中不存在.
如何让UC改变<div>父ASPX中的可见性?
对不起,我对.net和C#很新,我完全迷失了(再次!)
由于控件存在于页面中,而不是控件中,因此您必须在页面中找到它们:
this.Page.FindControl("cartStatusTrue").Visible = varCartStatus;
this.Page.FindControl("cartStatusFalse").Visible = !varCartStatus;
Run Code Online (Sandbox Code Playgroud)
或者类似地,如果他们在父控件中:
this.Parent.FindControl("cartStatusTrue").Visible = varCartStatus;
this.Parent.FindControl("cartStatusFalse").Visible = !varCartStatus;
Run Code Online (Sandbox Code Playgroud)
当然,还要确保你的div都有runat="server"和ID="cartStatusTrue"或ID="cartStatusFalse".
编辑:可能是设计改进的另一个选项是将隐藏div的工作移到aspx页面.您可以将其公开varCartStatus为控件的属性,并从aspx页面中读取该属性.在你的aspx.cs中:
this.cartStatusTrue.Visible = this.CartControl.CartStatus;
this.cartStatusFalse.Visible = !this.CartControl.CartStatus;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10002 次 |
| 最近记录: |