初始化一个控件应该是哪一个事件?? 继承某控件,我想在初始化的时候,加入.某属性=值加在New里面,关闭页面再打开,就绑定了该值了造成了该属性无法修改我只是想在第一次加载的时候初始化一次就Ok了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 初始化控件--->初始化控件页面--->页面加载--->控件加载 Page_load if not Page.isPostBack thendim a as labelend http://www.cnblogs.com/NoRax/archive/2007/02/28/660263.html这个你看看,初始化控件有相应的事件的Control_Init() 是我没有说清楚,初始化是在自定义控件中(设计期)1、自定义控件一个,继承Textbox2、属性CssClass——想设置一个默认值但是无论是new 还是init都会造成,关闭引用的页面后,再次打开就还原成默认值了也就是说不让修改了,呵呵~~ 也应该说实现了和<asp:Button ID="Button1" runat="server" Text="Button" />这里的Text属性类似的功能,拖出来的时候就有Text内容,但是你可以修改它 // WelcomeLabel.csusing System;using System.ComponentModel;using System.Security.Permissions;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;namespace Samples.AspNet.CS.Controls{ [ AspNetHostingPermission(SecurityAction.Demand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal), DefaultProperty("Text"), ToolboxData("<{0}:WelcomeLabel runat=\"server\"> </{0}:WelcomeLabel>") ] public class WelcomeLabel : WebControl { [ Bindable(true), Category("Appearance"), DefaultValue(""), Description("The welcome message text."), Localizable(true) ] public virtual string Text { get { string s = (string)ViewState["Text"]; return (s == null) ? String.Empty : s; } set { ViewState["Text"] = value; } } protected override void RenderContents(HtmlTextWriter writer) { writer.WriteEncodedText(Text); if (Context != null) { string s = Context.User.Identity.Name; if (s != null && s != String.Empty) { string[] split = s.Split('\\'); int n = split.Length - 1; if (split[n] != String.Empty) { writer.Write(", "); writer.Write(split[n]); } } } writer.Write("!"); } }}参考一下MSDN Library:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetctrlauth/html/6d90782a-a1a4-45a6-b2d4-cf6362b83b08.htm 楼上的兄弟——Text属性已经存在了的,我要的是初始化的效果,要把它设置出一个默认值来的。 using System;using System.Web.UI;using System.Web.UI.WebControls;using System.ComponentModel;namespace LcWebControlLibrary{ /// <summary> /// WebCustomControl1 の概要の説明です。 /// </summary> [DefaultProperty(""), ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")] public class WebCustomControl1 : System.Web.UI.WebControls.TextBox { /// <summary> /// このコントロールをパラメータに指定された出力に書き出します。 /// </summary> /// <param name="output"> 書き出す HTML ライタ </param> protected override void Render(HtmlTextWriter output) { this.Text="aaaaa"; this.CssClass="bbbbb"; base.Render(output); } }} 呵呵,这个问题我前几天刚遇到过,最后终于解决。你之所以造成text的值永远是你设置的默认值是因为你在服务器端设置了text的值,而客户修改后结果返回服务器端后又会使有你原来设置的默认值给覆盖。我的解决办法是: 你在为控件初始化的时候不要写成:Textbox.text="默认值"; 而应该写为:textbox.Attributes.Add("Value", "默认值"); 就是说给控件加客户端的默认值。这样就可以修改了。 希望我没有理解错你的意思。 如在上面定义时,这里public virtual string Text { get { string s = (string)ViewState["Text"]; return (s == null) ? String.Empty : s; }//改为,return (s == null) ? 默认值: s;不行吗? set { ViewState["Text"] = value; } } Insus.NET给Textbox初始化值,都是直接在Textbox中给的:<asp:TextBox ID="txtTimeLimit" runat="server" Text="1" CssClass="textbox"></asp:TextBox> 嗯,关键是Insus.NET如何做到的,应该就是类似的东西的 从写着三个事件:1.OnInit(EventArgs e){page.RegisterRequiresControlState(this);//通知叶面保存控件的状态base.OnInit(e);}2.object SaveControlState(){return this.text;//通知要保存的属性}3. LoadControlState(object savedState){this.text=savedState as String;//给属性付值}这三个事件 写完就和asp.net自己的控件是一样的了 高手 我爱她 帮她做 但我不会 设计服务器端程序,要求在文本框输入正整数(<=15),点击按钮,在下面输入正三角形。 Arcgis控件在VS2005中的功能提示 一个关于checkbox单选的问题 大哥们来帮我看下 ! c#水晶报表10分页小计 网页图片显示问题 哪里有文章详细解释一下如何分页? 送分 救命啊!!!net开发环境的问题。 怎么解决这个问题,关于文件的路径问题 并发求助 XmlTextWriter这么写这样的一个xml文件 js :怎样打开一个新窗口,关闭一个旧窗口
dim a as label
end
这个你看看,初始化控件有相应的事件的Control_Init()
2、属性CssClass——想设置一个默认值但是无论是new 还是init都会造成,关闭引用的页面后,再次打开就还原成默认值了
也就是说不让修改了,呵呵~~
<asp:Button ID="Button1" runat="server" Text="Button" />这里的Text属性类似的功能,拖出来的时候就有Text内容,但是你可以修改它
using System;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace Samples.AspNet.CS.Controls
{
[
AspNetHostingPermission(SecurityAction.Demand,
Level = AspNetHostingPermissionLevel.Minimal),
AspNetHostingPermission(SecurityAction.InheritanceDemand,
Level=AspNetHostingPermissionLevel.Minimal),
DefaultProperty("Text"),
ToolboxData("<{0}:WelcomeLabel runat=\"server\"> </{0}:WelcomeLabel>")
]
public class WelcomeLabel : WebControl
{
[
Bindable(true),
Category("Appearance"),
DefaultValue(""),
Description("The welcome message text."),
Localizable(true)
]
public virtual string Text
{
get
{
string s = (string)ViewState["Text"];
return (s == null) ? String.Empty : s;
}
set
{
ViewState["Text"] = value;
}
} protected override void RenderContents(HtmlTextWriter writer)
{
writer.WriteEncodedText(Text);
if (Context != null)
{
string s = Context.User.Identity.Name;
if (s != null && s != String.Empty)
{
string[] split = s.Split('\\');
int n = split.Length - 1;
if (split[n] != String.Empty)
{
writer.Write(", ");
writer.Write(split[n]);
}
}
}
writer.Write("!");
}
}
}
参考一下MSDN Library:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetctrlauth/html/6d90782a-a1a4-45a6-b2d4-cf6362b83b08.htm
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;namespace LcWebControlLibrary
{
/// <summary>
/// WebCustomControl1 の概要の説明です。
/// </summary>
[DefaultProperty(""),
ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
public class WebCustomControl1 : System.Web.UI.WebControls.TextBox
{ /// <summary>
/// このコントロールをパラメータに指定された出力に書き出します。
/// </summary>
/// <param name="output"> 書き出す HTML ライタ </param>
protected override void Render(HtmlTextWriter output)
{
this.Text="aaaaa";
this.CssClass="bbbbb";
base.Render(output);
}
}
}
你之所以造成text的值永远是你设置的默认值是因为你在服务器端设置了text的值,而客户修改后结果返回服务
器端后又会使有你原来设置的默认值给覆盖。
我的解决办法是:
你在为控件初始化的时候不要写成:Textbox.text="默认值";
而应该写为:textbox.Attributes.Add("Value", "默认值");
就是说给控件加客户端的默认值。这样就可以修改了。
希望我没有理解错你的意思。
如在上面定义时,这里
public virtual string Text
{
get
{
string s = (string)ViewState["Text"];
return (s == null) ? String.Empty : s; }//改为,return (s == null) ? 默认值: s;不行吗?
set
{
ViewState["Text"] = value;
}
}
1.OnInit(EventArgs e)
{
page.RegisterRequiresControlState(this);//通知叶面保存控件的状态
base.OnInit(e);
}
2.object SaveControlState()
{
return this.text;//通知要保存的属性
}
3. LoadControlState(object savedState)
{
this.text=savedState as String;//给属性付值}
这三个事件 写完就和asp.net自己的控件是一样的了