Asp.net回车默认按钮事件解决方案
来源:互联网 发布:刚开的淘宝店怎么经营 编辑:程序博客网 时间:2024/05/01 07:50
一、Js设置默认按钮
functiondocument.onkeydown()
{
vare=event.srcElement;
if(event.keyCode==13)
{
document.getElementById("btnSearch").focus();
return true;
}
}
二、在Form标签中设置defaultbutton属性
<formid="form1"runat="server" defaultbutton="默认按钮ID">
三、DefaultButton.js文件内容
for(i=0;i<Form1.elements.length;i++)
{
if(Form1.elements[i].type== "submit")
{
fstsubmit =Form1.elements[i]
fstsubmit.attachEvent("onmouseup", changeEvent)
//break; 这一句应该去掉
}
}
functionchangeEvent()
{
__doPostBack(event.srcElement.id, '')
}
四、控件方法
自己写一个控件继承 TextBox,增加一个 SubmitControl 属性用来指定此文本框上按回车时由哪个按钮来响应。再做一个Converter 增加设计时支持,就是在设计时可以用下拉框选择提交按钮。 目前只考虑了button、LinkButton和ImageButton作为提交按钮,当然继承它们的控件也可以。
ufoTextBox 控件:
public class ufoTextBox : TextBox
{
[TypeConverter(typeof(SubmitableControlConvertor)), DefaultValue(""), Category("Behavior")]
publicstring SubmitControl
{
get
{
object ret = this.ViewState["SubmitControl"];
if (ret != null)
{
return (string)ret;
}
return string.Empty;
}
set
{
this.ViewState["SubmitControl"]= value;
}
}
protectedoverride voidAddAttributesToRender(HtmlTextWriter writer)
{
base.AddAttributesToRender(writer);
if (this.SubmitControl.Length> 0)
{
Control con = FindControl(SubmitControl);
if (con != null)
{
string script = "if(event.keyCode== 13){document.getElementById('" + con.ClientID + "').click();event.returnValue=false;}";
writer.AddAttribute("onkeydown",script);
}
}
}
}
SubmitableControlConvertor类
public class SubmitableControlConvertor : StringConverter
{
privateobject[] GetControls(IContainercontainer)
{
ComponentCollectioncomponents = container.Components;
ArrayListret = new ArrayList();
foreach(IComponent control incomponents)
{
if (!(control is Button || control isLinkButton || control is ImageButton))
{
continue;
}
Control button = (Control)control;
if ((button.ID != null)&& (button.ID.Length != 0))
{
ret.Add(string.Copy(button.ID));
}
}
ret.Sort(Comparer.Default);
returnret.ToArray();
}
publicoverride System.ComponentModel.TypeConverter.StandardValuesCollectionGetStandardValues(ITypeDescriptorContextcontext)
{
if((context != null) &&(context.Container != null))
{
object[] controls = this.GetControls(context.Container);
if (controls != null)
{
return new TypeConverter.StandardValuesCollection(controls);
}
}
returnnull;
}
publicoverride boolGetStandardValuesExclusive(ITypeDescriptorContextcontext)
{
returnfalse;
}
publicoverride boolGetStandardValuesSupported(ITypeDescriptorContextcontext)
{
returntrue;
}
}
- Asp.net回车默认按钮事件解决方案
- asp.net 设置回车的默认按钮
- asp.net 回车自动激发按钮事件
- asp.net 回车激发指定按钮事件
- asp.net中页面按钮回车默认执行 设置方法
- asp.net 设置页面的默认按钮(敲回车按钮所触发的默认按钮)
- asp.net标中实现回车触发按钮事件
- asp.net标中实现回车触发按钮事件
- asp.net中如何回车触发指定按钮的事件
- 在asp.net中回车触发指定按钮的事件
- asp .net 页面回车触发button 按钮事件
- asp.net 页面回车触发button按钮事件
- asp.net 页面回车触发button按钮事件
- asp.net中如何回车触发指定按钮的事件(实现按回车提交)
- Asp.Net 默认按钮
- asp.net中的回车事件
- ASP.NET回车提交事件
- asp.net里有多个按钮的提交问题。以及回车触发指定按钮事件的问题。
- SQL Server BI Step by Step SSIS 5 --- 通过Email发送查询结果
- 重复提交
- 使用Spring 来配置 hibernate 映射文件的 两种方法
- 网页制作前台之Javascript鼠标事件
- Linux内核参数
- Asp.net回车默认按钮事件解决方案
- 开始了C语言教学
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之20---BDS综述
- 负载均衡计算公式
- js Array的用法总结
- 开学两周来的教学情况
- 实现发送邮件动态html内容的几种思路
- net传值乱码解决
- 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之21---什么是BDS