【发布时间】:2010-01-14 05:01:54
【问题描述】:
我创建了一个具有以下公共属性的 UserControl:
[Browsable(true)]
public string Text
{
get { return pnlLookupTable.GroupingText; }
set { pnlLookupTable.GroupingText = value; }
}
pnlLookupTable 正如您可能已经猜到的那样,是一个面板控件。我可以在“属性”窗口中更改 Text 属性的值,它会像应有的那样反映在标记中。但是,页面内 UserControl 的设计视图不会显示更新后的 GroupingText 面板。我怎样才能做到这一点?
编辑:
根据要求,这里是该属性所属的整个类。你可以看到没有什么特别的事情发生:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class LookupTable : System.Web.UI.UserControl
{
[Browsable(true)]
public string Text
{
get { return pnlLookupTable.GroupingText; }
set { pnlLookupTable.GroupingText = value; }
}
}
这是 .ascx 文件的相关部分:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="LookupTable.ascx.cs" Inherits="LookupTable" %>
<asp:Panel ID="pnlLookupTable" runat="server" GroupingText="Lookup Table">
<%-- Irrelevant content here. --%>
</asp:Panel>
我更改了一些标识符和其他琐碎的事情以保护代码的专有性质。
我还应该重申,我正在查看一个设计模式的 Web 表单,该表单添加了我的控件,并且我正在更改 Text 属性。我想在设计器中直观地看到 Panel 的 GroupingText 的变化。
【问题讨论】:
-
您是如何实现用户控制的?作为一个包含代码的 ASCX 文件?或者您是否编写了一个派生自 UserControl 的自定义类?请从您的场景中显示更多代码,因为这会影响答案。
-
Eilon,我更新了我的帖子。没有太多可看的了。 :)
-
快速跟进:我认为是时候接受这件事无法完成并继续前进了。由于这实际上只是为了方便,因此不需要创建自定义控件或编译 .ascx,尽管这些都是很好的建议。感谢大家的贡献。我确实学到了一些东西。
标签: asp.net visual-studio-2008 user-controls webforms designer