自定制控件(只有10分了)
在我自定制的控件中是由 image 控件与其它控件组合而成的
其中image 的个数是由用户指定的(也即是动态的)
怎样使在我 自定制的控件 的属性栏中能由用户指定各个 image 控件的ImageUrl
最好能给出示例代码,先谢谢!
问题点数:10、回复次数:13Top
1 楼linaren(JAVA/LINUX...)回复于 2003-09-01 10:00:47 得分 0
在线等待!Top
2 楼csdn_bob(文子)回复于 2003-09-01 10:24:09 得分 8
很简单,添加一个属性用来放个数,然后在Reader方法中输出image控件.
imageUrl要由用户指定的话,可以用一个索引来设置.
code可以自己试着写一下,应该简单Top
3 楼linaren(JAVA/LINUX...)回复于 2003-09-01 11:01:03 得分 0
我说的不是输出问题,关键就是
”怎样使在我 自定制的控件 的属性栏中能由用户指定各个 image 控件的ImageUrl“
因为要使控件使用方便,应友好地由用户在属性栏中选择 各个 image 控件的ImageUrl 就行了,而怎样在属性栏中出现选择多个ImageUrl ,而且image 的个数是不定的
这怎样解决?谢谢!Top
4 楼sarmoo(Echo)回复于 2003-09-01 11:37:47 得分 2
作一个Editor继承自UITypeEditor,加到你的属性上。Top
5 楼sarmoo(Echo)回复于 2003-09-01 11:44:53 得分 0
作一个Editor继承自UITypeEditor,加到你的属性上就可以了。Top
6 楼linaren(JAVA/LINUX...)回复于 2003-09-01 11:51:33 得分 0
能给出示例吗?谢谢!Top
7 楼csdn_bob(文子)回复于 2003-09-01 11:55:06 得分 0
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace WebControlLibrary
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:WebCustomControl runat=server></{0}:WebCustomControl>")]
public class WebCustomControl : System.Web.UI.WebControls.WebControl
{
private string text;
private string[] imageUrl;
private uint imageCount;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public uint ImageCount
{
get
{
return imageCount;
}
set
{
this.imageCount = value;
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public string[] ImageUrl
{
get
{
return this.imageUrl;
}
set
{
this.imageUrl = value;
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
Top
8 楼csdn_bob(文子)回复于 2003-09-01 11:56:39 得分 0
输出我就没有写了,在设计的时候,点imageUrl属性的话,就会出来一个对话框,输入东西的.
你可以试一下!Top
9 楼linaren(JAVA/LINUX...)回复于 2003-09-01 12:15:33 得分 0
谢谢!
还存在一个问题的,能不能使弹出的对话框能调用ImageUrlEditor类
以使用户可以进行选择就行了
怎么实现?Top
10 楼csdn_bob(文子)回复于 2003-09-01 14:12:12 得分 0
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
namespace WebControlLibrary
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:WebCustomControl runat=server></{0}:WebCustomControl>")]
public class WebCustomControl : System.Web.UI.WebControls.WebControl
{
private string text;
private System.Web.UI.HtmlControls.HtmlImage[] imageUrl;
private uint imageCount;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public uint ImageCount
{
get
{
return imageCount;
}
set
{
this.imageCount = value;
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public System.Web.UI.HtmlControls.HtmlImage[] ImageUrl
{
get
{
return this.imageUrl;
}
set
{
this.imageUrl = value;
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
Top
11 楼csdn_bob(文子)回复于 2003-09-01 14:30:53 得分 0
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Drawing.Design;
namespace WebControlLibrary
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[DefaultProperty("Text"),
ToolboxData("<{0}:WebCustomControl runat=server></{0}:WebCustomControl>")]
public class WebCustomControl : System.Web.UI.WebControls.WebControl
{
private string text;
private string[] imageUrl;
private uint imageCount;
[Bindable(true),
Category("Appearance"),
DefaultValue("")]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public uint ImageCount
{
get
{
return imageCount;
}
set
{
this.imageCount = value;
}
}
[EditorAttribute(typeof(System.Web.UI.Design.ImageUrlEditor), typeof(UITypeEditor)),Bindable(true),
Category("Appearance")]
public string[] ImageUrl
{
get
{
return this.imageUrl;
}
set
{
this.imageUrl = value;
}
}
/// <summary>
/// 将此控件呈现给指定的输出参数。
/// </summary>
/// <param name="output"> 要写出到的 HTML 编写器 </param>
protected override void Render(HtmlTextWriter output)
{
output.Write(Text);
}
}
}
Top
12 楼csdn_bob(文子)回复于 2003-09-01 14:34:16 得分 0
不过这里还有一个问题,就是返回的不是一个集合的URL,而只有一个,我也是学习....Top
13 楼linaren(JAVA/LINUX...)回复于 2003-09-01 14:42:06 得分 0
bool 型能不能这样
//假设前面已经定义了 bool[] flag ;
[Bindable(true),
Category("Appearance"),
DefaultValue("1")]
public bool Bool
{
get
{
return flag;
}
set
{
this.flag = value;
}
}
Top
14 楼linaren(JAVA/LINUX...)回复于 2003-09-01 15:13:35 得分 0
还是要谢谢了!Top



