为侧边栏仪表板创建webbuser控件,每个项目都有模态弹出

本文关键字:项目 模态 仪表板 侧边栏 创建 webbuser 控件 | 更新日期: 2023-09-27 17:54:56

嗨,基本上我想创建一个控件,可以添加弹出菜单项,这是在页面的标记声明。我希望语法像下面这样:

<uc1:Sidebar id="" runat="server" enablePopup="True">
<PopUpBindings>
<PopedControlId="" BackgroundClass="" TargetItemIndex=""/>
<PopedControlId="" BackgroundClass="" TargetItemIndex=""/>
..
</PopUpBindings>
</uc1:Sidebar>

我能够在asmx页面中使用成员字段创建enablePopUp。像下面的

private bool _enablePopup;
public Boolean EnablePopup
{
    get { return _enablePopup; }
    set { _enablePopup = value; }
}

,但创建一个如markUp 1所示的绑定集。以前从没这么做过。有人能给点提示吗?问题2:这个用户控件正在被创建,因为modalPopup不能与Repeater的数据绑定一起创建。我尝试了以下中继器ItemDatabound事件,但会抛出异常"目标控件Id ={0}无法找到"

mpcpnlNewBp.TargetControlID = e.Item.ID;//open modalpopup

为侧边栏仪表板创建webbuser控件,每个项目都有模态弹出

您需要的是控件上的Collection属性-查看来自MSDN的示例代码以获得想法。

如果需要更多的设计器支持,例如用于编辑属性的UI,那么您需要创建集合编辑器-检查此相关示例。

编辑:对于像repeater这样的模板化控件,目标控件需要在正确的父控件上下文中找到,这是Modal Popup无法做到的。解决方案是在页面/用户控件上使用一个虚拟(隐藏)控件作为模态弹出窗口的目标控件,然后根据需要使用扩展程序的java-script API来隐藏/显示弹出窗口(有关客户端API,请参阅本文)。