我也不清楚,是不是要公开TEXT属性
帮你up
帮你up
解决方案 »
- 大哥大姐们 请教mysql语句 急!
- 求一邮件收发代码
- 吧js变量写入到cookie中然后在后台获取这个cookie
- asp跟asp.net程序能否共享一个cookies?asp设置的cookies asp.net能否调用
- 有关存储过程和复杂SQL优化的办法..
- 源程序汇总(个人在学习过程认为比较的)
- 还是关于数据库select语句中top后面的数字能不能是个输入参数的问题??这次比上一次有难度!! 请思归等人解答??
- 我自己写了一个控件,想动态添加遇到的问题!请有过相同经历的朋友看看,有没有相关代码或思路请赐教,不胜感激!
- 初学者的问题,不笑!
- 刚来报到,请各位指导!多谢各位来点意见!
- 校验控件要回车才起作用,以前不是这样的!
- 在服务器端如何设置iframe的src?
是怎么验证的阿?
就是和楼上的差不多
如果是HtmlTextWriter写的,客户端验证你还是自己写js代码验证吧,没办法使用asp.net自带的验证控件。
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace Commbox
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[
DefaultEvent("TextChanged"),
DefaultProperty("Text"),
]
//public class ComboBox:WebControl, INamingContainer,IPostBackDataHandler
public class ComboBox:TextBox
{
ListBox lb;
//public ComboBox():base(HtmlTextWriterTag.Input)
public ComboBox()
{
lb=new ListBox();
lb.Style["position"]="absolute";
lb.Style["display"]="none";
lb.Style["filter"]="progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')";
lb.EnableViewState=true;
Controls.Add(lb);
}
[
PersistenceMode(PersistenceMode.InnerProperty),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
]
public ListItemCollection Items
{
get
{
return lb.Items;
}
} [
DefaultValue(null),
]
public object DataSource
{
get
{
return lb.DataSource;
}
set
{
if(value!=null)
lb.DataSource=value;
} }
[
DefaultValue(""),
]
public string DataMember
{
get
{
return lb.DataMember;
}
set
{
lb.DataMember=value;
} } [
DefaultValue(""),
] public string DataTextField
{
get
{
return lb.DataTextField;
}
set
{
lb.DataTextField=value;
}
}
[
DefaultValue(""),
]
public string DataValueField
{
get
{
return lb.DataValueField;
}
set
{
lb.DataValueField=value;
}
} [
DefaultValue(""),
]
public string DataTextFormatString
{
get
{
return lb.DataTextFormatString;
}
set
{
lb.DataTextFormatString=value;
} } protected new void OnDataBinding(EventArgs e)
{
lb.DataBind();
}
[
DefaultValue(false),
]
public new bool AutoPostBack
{
get
{
return ViewState["AutoPostBack"]==null?false:true;
}
set
{
if(value)
ViewState["AutoPostBack"]=0;
else
ViewState.Remove("AutoPostBack");
}
}
[
DefaultValue(""),
]
public override string Text
{
get
{
return Convert.ToString(ViewState["Text"]);
}
set
{
ViewState["Text"]=value;
}
}
[
DefaultValue(""),
]
public string ComBoxCssClass
{
get
{
return lb.CssClass;
}
set
{
lb.CssClass=value;
}
} [
DefaultValue(0),
]
public override int MaxLength
{
get
{
object o=ViewState["MaxLength"];
return o==null?0:(int)o;
}
set
{
ViewState["MaxLength"]=value;
}
} static private string _scriptBlock;
static protected string ScriptBlock
{
get
{
if(_scriptBlock==null)
{
using(Stream s=typeof(ComboBox).Assembly.GetManifestResourceStream(typeof(ComboBox).FullName+".js"))
{
using(StreamReader sr=new StreamReader(s))
{
_scriptBlock="<script language=jscript>"+sr.ReadToEnd()+"</script>";
}
}
}
return _scriptBlock;
}
}
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e); Page.RegisterStartupScript(this.UniqueID,"<script>LostinetSampleComboBox_Init('"+this.UniqueID+"','"+lb.UniqueID+"');</script>");
string key=typeof(ComboBox).FullName;
if(!Page.IsClientScriptBlockRegistered(key))
{
Page.RegisterClientScriptBlock(key,ScriptBlock);
}
} protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Value,this.Text,true);
writer.AddAttribute("AutoComplete","Off");
if(MaxLength>0)
writer.AddAttribute(HtmlTextWriterAttribute.Maxlength,MaxLength.ToString(),false);
if(this.AutoPostBack)
writer.AddAttribute(HtmlTextWriterAttribute.Onchange,Page.GetPostBackEventReference(this),false);
} public void RaisePostDataChangedEvent()
{
OnTextChanged(EventArgs.Empty);
} public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
string v=postCollection[postDataKey];
if(v==Text)
return false;
Text=v;
return true;
}
/* //新得系统
public new event EventHandler TextChanged; protected new void OnTextChanged(EventArgs e)
{
if(TextChanged!=null)
TextChanged(this,e);
}
*/ /*
protected override void LoadViewState(object savedState)
{
Pair p=(Pair)savedState;
base.LoadViewState(p.First);
//((IStateManager)lb.Items).LoadViewState(p.Second); } protected override object SaveViewState()
{
//return new Pair(base.SaveViewState(),((IStateManager)lb.Items).SaveViewState());
return new Pair(base.SaveViewState(),null);
} protected override void TrackViewState()
{
base.TrackViewState();
//((IStateManager)lb.Items).TrackViewState();
}
*/
}}
ControlBuilder(GetType(ValidateButtonBuilder)), ParseChildren(False), PersistChildren(False)> _
Public Class ValidateButton大量元数据运用的例子
其中text为要参加验证的property名
using System.Collections;
using System.Collections.Specialized;
using System.ComponentModel;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace Commbox
{
/// <summary>
/// WebCustomControl1 的摘要说明。
/// </summary>
[
DefaultEvent("TextChanged"),
DefaultProperty("Text"),
ValidationProperty("Text"),//here
]
//public class ComboBox:WebControl, INamingContainer,IPostBackDataHandler
public class ComboBox:TextBox
{
ListBox lb;
//public ComboBox():base(HtmlTextWriterTag.Input)
public ComboBox()
{
lb=new ListBox();
lb.Style["position"]="absolute";
lb.Style["display"]="none";
lb.Style["filter"]="progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')";
lb.EnableViewState=true;
Controls.Add(lb);
}
[
PersistenceMode(PersistenceMode.InnerProperty),
DesignerSerializationVisibility(DesignerSerializationVisibility.Content),
]
public ListItemCollection Items
{
get
{
return lb.Items;
}
} [
DefaultValue(null),
]
public object DataSource
{
get
{
return lb.DataSource;
}
set
{
if(value!=null)
lb.DataSource=value;
} }
[
DefaultValue(""),
]
public string DataMember
{
get
{
return lb.DataMember;
}
set
{
lb.DataMember=value;
} } [
DefaultValue(""),
] public string DataTextField
{
get
{
return lb.DataTextField;
}
set
{
lb.DataTextField=value;
}
}
[
DefaultValue(""),
]
public string DataValueField
{
get
{
return lb.DataValueField;
}
set
{
lb.DataValueField=value;
}
} [
DefaultValue(""),
]
public string DataTextFormatString
{
get
{
return lb.DataTextFormatString;
}
set
{
lb.DataTextFormatString=value;
} } protected new void OnDataBinding(EventArgs e)
{
lb.DataBind();
}
[
DefaultValue(false),
]
public new bool AutoPostBack
{
get
{
return ViewState["AutoPostBack"]==null?false:true;
}
set
{
if(value)
ViewState["AutoPostBack"]=0;
else
ViewState.Remove("AutoPostBack");
}
}
[
DefaultValue(""),
]
public override string Text
{
get
{
return Convert.ToString(ViewState["Text"]);
}
set
{
ViewState["Text"]=value;
}
}
[
DefaultValue(""),
]
public string ComBoxCssClass
{
get
{
return lb.CssClass;
}
set
{
lb.CssClass=value;
}
} [
DefaultValue(0),
]
public override int MaxLength
{
get
{
object o=ViewState["MaxLength"];
return o==null?0:(int)o;
}
set
{
ViewState["MaxLength"]=value;
}
} static private string _scriptBlock;
static protected string ScriptBlock
{
get
{
if(_scriptBlock==null)
{
using(Stream s=typeof(ComboBox).Assembly.GetManifestResourceStream(typeof(ComboBox).FullName+".js"))
{
using(StreamReader sr=new StreamReader(s))
{
_scriptBlock="<script language=jscript>"+sr.ReadToEnd()+"</script>";
}
}
}
return _scriptBlock;
}
}
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e); Page.RegisterStartupScript(this.UniqueID,"<script>LostinetSampleComboBox_Init('"+this.UniqueID+"','"+lb.UniqueID+"');</script>");
string key=typeof(ComboBox).FullName;
if(!Page.IsClientScriptBlockRegistered(key))
{
Page.RegisterClientScriptBlock(key,ScriptBlock);
}
} protected override void AddAttributesToRender(System.Web.UI.HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
writer.AddAttribute(HtmlTextWriterAttribute.Name,this.UniqueID);
writer.AddAttribute(HtmlTextWriterAttribute.Value,this.Text,true);
writer.AddAttribute("AutoComplete","Off");
if(MaxLength>0)
writer.AddAttribute(HtmlTextWriterAttribute.Maxlength,MaxLength.ToString(),false);
if(this.AutoPostBack)
writer.AddAttribute(HtmlTextWriterAttribute.Onchange,Page.GetPostBackEventReference(this),false);
} public void RaisePostDataChangedEvent()
{
OnTextChanged(EventArgs.Empty);
} public bool LoadPostData(string postDataKey, System.Collections.Specialized.NameValueCollection postCollection)
{
string v=postCollection[postDataKey];
if(v==Text)
return false;
Text=v;
return true;
}
/* //新得系统
public new event EventHandler TextChanged; protected new void OnTextChanged(EventArgs e)
{
if(TextChanged!=null)
TextChanged(this,e);
}
*/ /*
protected override void LoadViewState(object savedState)
{
Pair p=(Pair)savedState;
base.LoadViewState(p.First);
//((IStateManager)lb.Items).LoadViewState(p.Second); } protected override object SaveViewState()
{
//return new Pair(base.SaveViewState(),((IStateManager)lb.Items).SaveViewState());
return new Pair(base.SaveViewState(),null);
} protected override void TrackViewState()
{
base.TrackViewState();
//((IStateManager)lb.Items).TrackViewState();
}
*/
}}