我要提前报警,因为我真的处于对此的理解极限,所以如果我不解释这个......很抱歉......
无论如何,我正在尝试创建一个具有复杂属性的asp.net服务器控件,可以使用intellisense设置.因此,作为一个例子,我将使用汽车,因此服务器控件可能被称为汽车,当我实际在webform上实现控件时,我想设置复杂的分层属性,例如:
<Control:Car Color="Paint.Metalic.CandyRed"
Wheels="Forged.Aluminun.FiveSpoke.GunMetal" />
Run Code Online (Sandbox Code Playgroud)
要么
<Control:Car Color="Paint.Matte.Yellow"
Wheels="Forged.Steel.SevenSpoke.BareMetal" />
Run Code Online (Sandbox Code Playgroud)
我已经尝试在服务器控件中创建公共属性,它们只是指向基类的类型/类,但是intellisense没有提供任何东西.我可以使用一个直接的枚举,这将显示,但我不能做任何分层的方式.我一直在寻找例子,但我似乎找不到任何东西.任何帮助将不胜感激!!!!
谢谢!
一个不同的例子怎么样,看起来项目之间的关系或它们的预期价值虽然完全不重要,但似乎是一个问题.
让我们来看看大陆/国家/州/城市/等之间的关系....通过这个例子,如果我的自定义服务器控件被称为"位置",那么我希望能够......
<Control:Location CurrentLocation="UnitedStates.Nebraska.Lincoln" />
Run Code Online (Sandbox Code Playgroud)
要么
<Control:Location CurrentLocation="Europe.Italy.Napoli" />
Run Code Online (Sandbox Code Playgroud)
你的问题比前两个答案更糟糕:你不知道你在做什么.
很抱歉听起来很刺耳,但是你在哪里看到像"Paint.Metalic.CandyRed"这样的东西,它在那里意味着什么?还是"Forged.Aluminun.FiveSpoke.GunMetal"?你甚至想要那是什么意思?
首先,弄清楚你想要代表什么.然后,创建一个可以表示它的类.然后,将该类的属性添加到服务器控件.您可能必须添加TypeConverter或其他设计器支持,以便ASP.NET将您首选的文本表示转换为类的实例.否则,您将能够获得类似Font的属性.
我将猜测这些值中的一些代表什么,并试图向您展示如何在控件中处理它们.不过,我的猜测可能还很遥远.
我将使用"Paint.Metalic.CandyRed".我认为这适用于汽车定制领域,并且Color属性用于表示整体赋予汽车的饰面.在这种情况下,"油漆"可能是enum指完成的类型(虽然我不知道其他类型的饰面适用于汽车!).我知道,在我小时候制作模型车时,油漆可能是金属色,光泽度或平坦色,所以这三个将是一个枚举的枚举值."CandyRed"将是众多颜色中的一种.这会是这样的:
public enum FinishType
{
Paint,
NotPaint // _I_ don't know!
}
public enum PaintFinish
{
Metallic,
Gloss,
Flat
}
public enum CarColor
{
CandyRed,
SilverMist,
DesertSandMica,
MagneticGray,
// etc.
}
public class CarFinish
{
public FinishType FinishType {get;set;}
public PaintFinish PaintFinish {get;set;}
public CarColor CarColor {get;set;}
}
public class Car : WebControl
{
public CarFinish Color {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这将允许这样的事情:
<Control:Car Color-FinishType="Paint"
Color-PaintFinish="Metallic"
Color-CarColor="CandyRed" .../>
Run Code Online (Sandbox Code Playgroud)
或这个:
<Control:Car ...>
<Color FinishType="Paint" PaintFinish="Metallic" CarColor="CandyRed"/>
</Control:Car>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1365 次 |
| 最近记录: |