- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有三个类和一个将使用这三个类的用户控件。
以下是类及其解释:
//provides access to multiple ManagementMethods
[Serializable(), ParseChildren(true)]
public class ManagementDelegate
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ManagementMethod> Method
{
get; set;
}
}
//provides access to multiple ManagementParameters and the method name
[Serializable(), PersistChildren(false)]
public class ManagementMethod
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public string Name
{
get; set;
}
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ManagementParameter> Parameter
{
get; set;
}
}
//describes a parameter of method.
[Serializable(), PersistChildren(false)]
public class ManagementParameter
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public string ParameterName
{
get; set;
}
}
//===============================
//here is the part of user control code behind that uses the ManagementDelegate class.
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public ManagementDelegate SelectMethods
{
get; set;
}
下面是我正在寻找的结构示例:
<UC:MyUc ID="test" runat="server">
<SelectMethods>
<!-- here when i open a tag asp.net lists the Method, but when i try to set the Name attribute it warns and won't run. -->
<Method Name="meth">
<Parameter ParameterName="id" />
<Parameter ParameterName="word" />
</Method
<Method Name="meth2">
</Method
</SelectMethods>
</UC:MyUc>
问题是 ASP.net 将 SelectMethod 识别为内部标记,它甚至将 Method 标记识别为内部标记,但它不识别实际上是 ManagementMethod 的 Method 标记的类型。当我将任何属性的类型更改为简单类型时,例如将列表更改为 ManagementMethod,ASP.net 会识别它并且一切正常。任何 List<> 对象也是如此。
最佳答案
这是我们生产代码的片段,您可以看到 ControlDependency
类甚至允许 ControlDependency
的子级
[PersistChildren(false), TypeConverter(typeof(ExpandableObjectConverter)), ParseChildren(true), Serializable()]
public class ControlDependencySetting
{
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ControlDependency> ControlDependencies { get; set; }
***Code emitted
}
[PersistChildren(false), TypeConverter(typeof(ExpandableObjectConverter)), ParseChildren(true),Serializable()]
public class ControlDependency
{
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ControlDependency> ControlDependencies { get; set; }
**Code Emitted
}
并在自定义控件中声明为
[System.ComponentModel.DesignerSerializationVisibility(System.ComponentModel.DesignerSerializationVisibility.Content),
PersistenceMode(PersistenceMode.InnerProperty),
NotifyParentProperty(true)]
public List<ControlDependencySetting> ControlDependencySettings { get; set; }
另请注意,我确实在每个构造函数中创建了这些列表的实例。
*EDIT***
您已经调用了您的列表 Method
和您的元素 Method
,您希望 ManagementDelegate
的子元素自动添加到名为的列表中方法
,这不是它的工作原理,当你想添加到列表时,你需要指定列表元素并在其中添加,你对参数也做了同样的事情。
这是您当前结构所期望的。
<SelectMethods>
<Method> <--Now this is the list of methods, you have also called it method
<Method Name="meth"> <-- This is an element of the method type to add to the list you have called Method
<Parameter> <-- This is the list of parameters you have called it Parameter
<Parameter ParameterName="id" /> <--parameter element
<Parameter ParameterName="word" />
<Parameter>
</Method>
</Method>
您应该重命名为 Methods
和 Parameters
并相应地使用或重新构建您的布局。
有点像
//provides access to multiple ManagementMethods
[Serializable(), ParseChildren(true)]
public class ManagementDelegate
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ManagementMethod> Methods
{
get; set;
}
}
//provides access to multiple ManagementParameters and the method name
[Serializable(), PersistChildren(false),TypeConverter(typeof(ExpandableObjectConverter))]
public class ManagementMethod
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public string Name
{
get; set;
}
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public List<ManagementParameter> Parameters
{
get; set;
}
}
//describes a parameter of method.
[Serializable(), PersistChildren(false),TypeConverter(typeof(ExpandableObjectConverter))]
public class ManagementParameter
{
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)]
public string ParameterName
{
get; set;
}
}
//===============================
//here is the part of user control code behind that uses the ManagementDelegate class.
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always),
PersistenceMode(PersistenceMode.InnerProperty)]
public ManagementDelegate SelectDelegate
{
get; set;
}
然后
<UC:MyUc ID="test" runat="server">
<SelectDelegate>
<Methods>
<Method Name="meth">
<Parameters>
<Parameter ParameterName="id" />
<Parameter ParameterName="word" />
<Parameters>
</Method>
<Method Name="meth2">
</Method>
</Methods>
</SelectDelegate>
</UC:MyUc>
我相信也可以指定默认情况下内部内容属于特定属性,请参阅 PersistenceMode.InnerDefaultProperty - 但我从未尝试过。
关于c# - 为什么我不能在 WebForm 中声明 UserControl 的子元素(属性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743680/
所以我试图将 MiniProfiler ( https://github.com/MiniProfiler/dotnet ) 用于 WebForms 网站。我所做的是: 使用 nuget 安装软件包
是否有等同于 Webforms 的 MvcBuildViews? 最佳答案 不。 另一种方法是将构建后操作添加到 Visual Studio 项目并让它运行 aspnet_compiler.exe “
是否有使用 CSP(内容安全策略)将 WebForms 项目中动态创建的脚本列入白名单的安全方法? 使用 unsafe-inline像下面它的工作原理,但不推荐。 context.Response.H
我们正在尝试使用在经典模式应用程序池中运行的 ASP.NET WebForms 应用程序配置 MiniProfiler(无法将其更改为集成)。我们无法让处理程序工作,因此加载资源失败。 为了解决这个问
是否 ASP.Net 核心 1.0 支持.Net WebForm 项目吗?或者它只是一个 MVC 环境?我也可以在那里创建经典的 Web 服务(asmx)吗? 最佳答案 简短回答:不,ASP.NET
我正在尝试将数据从 webform 传递到方法背后的代码并在 webform 中取回值,然后打印它。我最初测试了以下代码以简单地将请求发布到方法,获取字符串并在页面中打印,它可以工作,但是在尝试将数据
我创建了一个新的 ASP.NET 4.5 WebForms 项目,并发现了一堆与 GridView、DetailsView 和其他数据相关组件以及 MSAjax 相关的额外 javascript 文件
我正在使用带有模型绑定(bind)和 Entity Framework 5 的 .net 4.5 WebForms。 我的网络表单的一部分:
在搜索了很多类似的帖子、解决方法之后,我决定自己发帖。 Compilation Error Description: An error occurred during the compilation
我将在一个项目中工作,我们将在该项目中将 ASP 经典页面重写为 ASP.NET WebForm。我从未使用过 VB、VBScript、ASP Classic。好处是有大量关于 VB6、VB.NET、
在 vs2012 中,f7 键在 aspx/ascx/masterpage 文件的 Markup 和 Codebehind 之间切换。在我重新安装系统之前,Vs2013 的行为方式相同。现在它只会从
我正在尝试登录网站并自动保存 HTML 页面(我希望能够定期执行此操作)。从表面上看,这是一个典型的现代网站,如果用户直接导航到“锁定”的 URL,则会弹出一个登录表单,登录后,用户将被重定向到预期页
我看到人们在以Webform进行路由时使用星号符号。我只是不明白像下面这样的星号的重要性 routes.MapPageRoute( "View Category", /
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我正在尝试在 aspx 页面中执行类似的操作: 我收到错误“预处理器指令必须显示为行上的第一个非空白字符”。我怎样才能做到这一点?
我想渲染一个表单。字段行的 HTML 应该是这样的: 当字段类型为文本时,li.class 必须相同。 我覆盖了 field_row block : {% block
目前我所有的网络表单文件 (.aspx) 都在我的项目 (VS 2012) 的根文件夹中。 我创建了一个名为“pages”的新文件夹,并使用母版页向其中添加了一个新的网络表单 (WebForm1)。当
我正在为销售文员制作一个 asp.net、c#、webforms 网站。我在屏幕顶部有四个主要按钮,我将使用它们来实现很多功能。我想要做的是将这些按钮设置为键盘上的 F1、F2、F3 和 F4 键。
我在网络表单上有两个按钮,它们的显示高度不同。这发生在我更新 Gravity Forms 之后。 参见 http://topdek.nl/prijs/ ,输入随机名称、电子邮件地址和电话号码,单击“V
在我的 WebForms 应用程序中,我有一个 CustomValidator 控件。该控件执行我创建的 JavaScript 函数。如果此函数返回 false,则表单将不会提交。此验证器与标准 Re
我是一名优秀的程序员,十分优秀!