仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 795|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网站制作之asp.net表单回车提交的成绩,设置默许按...

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:23:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
就安全性而言,Java已经远远低于VB.NET,更无法与安全性著称的C#相比。有asp.net内里用了formrunat=server的表单的时分,内里的<asp:button..总不克不及按个回车提交表单,非常不爽。如今终究发明了一个属性能够干这个事变,用this.Form.DefaultButton="ContentPlaceHolder1$btsubmit";
值得注重的是,假如用了masterPage(母板页),那末要在按钮ID前加上母板的ID:ContentPlaceHolderID和一个美圆符($)

代码以下:
<%@PageLanguage="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeFile="login.aspx.cs"Inherits="login"%>
<asp:ContentID="Content1"ContentPlaceHolderID="ContentPlaceHolder1"Runat="Server">
<asp:TextBoxrunat="server"ID="wd"></asp:TextBox><asp:ButtonID="btsubmit"runat="server"Text="提交"OnClick="btsubmit_Click"/>
...........................
</asp:Content>

含母板页的类中:
protectedvoidPage_Load(objectsender,EventArgse)
{
this.Form.DefaultButton="ContentPlaceHolder1$btsubmit";
}

非母板页的类中:

protectedvoidPage_Load(objectsender,EventArgse)
{
this.Form.DefaultButton="btsubmit";
}

---------------------------------------------------另外一种举措是做一个控件-----------------------------------------------------------


人人都晓得。怎样页面只要一个按钮的话。按回车的话。是能够提交的。此时的做法也十分复杂。在click中间接写代码就能够了。页面在提交时,它]认是提交第一个控件的。以是。我在页面的最下面放一个长宽都为0的服务器按钮button1。然在在button1_onclick()中写要提交的代码就能够了。运转时,你按下回车提交。这时候页面提交的就是button1的事务了。哈!是否是很复杂!

弱点:

不必我说了,每一个页面只能存在一个回车提交的事务。


---------------------------------------------------另外一种举措是做一个控件-----------------------------------------------------------
本人写一个控件承继TextBox,增添一个SubmitControl属性用来指定此文本框上按回车时由哪一个按钮来呼应。
  再做一个Converter增添计划时撑持,就是在计划时能够用下拉框选择提交按钮。
  今朝只思索了Button、LinkButton和ImageButton作为提交按钮,固然承继它们的控件也能够。
  本例常识点:控件、属性、承继。
  承继:是一个历程,经由过程承继,一个工具能够取得另外一个工具的属性(包含函数),并可向个中到场属于本人的一些特性。作为C++言语的一种主要机制,用承继的办法能够主动为一个类供应来自另外一个类的操纵和数据布局,进而使程序计划职员在一个一样平常的类的基本上很快创建一个新的类,而不用从零入手下手计划每一个类。
  当一个类被其他的类承继时,被承继的类称为基类,又称为父类。
  承继其他类属性的类称为派生类,又称为子类。
  一样平常情形下,承继的历程劈头于一个基类的界说,基类界说了其一切派生类的私有属性。从实质上讲,基类具有统一类汇合中的大众属性,派生类承继了这些属性,而且增添了本人独有的属性。从任何已存在的类承继的本色就是制作新的派生类。
  完成历程
  1)先创立一个新项目WEB控件库,将此段代码加出来。
  publicclassufoTextBox:TextBox
  {
  [TypeConverter(typeof(SubmitableControlConvertor)),DefaultValue(""),Category("Behavior")]
  publicstringSubmitControl
  {
  get
  {
  objectret=this.ViewState["SubmitControl"];
  if(ret!=null)
  {
  return(string)ret;
  }
  returnstring.Empty;
  }
  set
  {
  this.ViewState["SubmitControl"]=value;
  }
  }
  protectedoverridevoidAddAttributesToRender(HtmlTextWriterwriter)
  {
  base.AddAttributesToRender(writer);
  if(this.SubmitControl.Length>0)
  {
  Controlcon=FindControl(SubmitControl);
  if(con!=null)
  {
  stringscript="if(event.keyCode==13){document.getElementById("+con.ClientID+").click();event.returnValue=false;}";
  writer.AddAttribute("onkeydown",script);
  }
  }
  }
  }
  自界说的Converter,用于计划时撑持:
  publicclassSubmitableControlConvertor:StringConverter
  {
  privateobject[]GetControls(IContainercontainer)
  {
  ComponentCollectioncomponents=container.Components;
  ArrayListret=newArrayList();
  foreach(IComponentcontrolincomponents)
  {
  if(!(controlisButtoncontrolisLinkButtoncontrolisImageButton))
  {
  continue;
  }
  Controlbutton=(Control)control;
  if((button.ID!=null)&&(button.ID.Length!=0))
  {
  ret.Add(string.Copy(button.ID));
  }
  }
  ret.Sort(Comparer.Default);
  returnret.ToArray();
  }
  publicoverrideSystem.ComponentModel.TypeConverter.StandardValuesCollectionGetStandardValues(ITypeDescriptorContextcontext)
  {
  if((context!=null)&&(context.Container!=null))
  {
  object[]controls=this.GetControls(context.Container);
  if(controls!=null)
  {
  returnnewTypeConverter.StandardValuesCollection(controls);
  }
  }
  returnnull;
  }
  publicoverrideboolGetStandardValuesExclusive(ITypeDescriptorContextcontext)
  {
  returnfalse;
  }
  publicoverrideboolGetStandardValuesSupported(ITypeDescriptorContextcontext)
  {
  returntrue;
  }
  }
  2)将此文件天生.dll文件,在工具箱中增加此dll文件。
  3)将此控件拖进响应页面,在Page_Load中加上[此控件的名字].SubmitControl="所提交的按钮的名字";
  比方:
  WebCustomControl1.SubmitControl="Button1"(双引号不要往失落了!)
  当往WebCustomControl1输出完内容以后按回车Button1呼应。

我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。
乐观 该用户已被删除
沙发
发表于 2015-1-19 10:22:51 | 只看该作者
主流网站开发语言之PHPHP的全名非常有趣,它是一个巢状的缩写名称——“PHP:HypertextPreprocessor”,打开缩写还是缩写。PHP是一种HTML内嵌式的语言(就像上面讲的ASP那样)。而PHP独特的语法混合了C,Java,Perl以及PHP式的新语法。它可以比CGI或者Perl更快速地执行动态网页。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-26 22:33:40 | 只看该作者
在一个项目中谁敢保证每天几千万甚至几亿条的数据不丢失?谁敢保证应用的高可靠性?有可以借签的项目吗?
爱飞 该用户已被删除
地板
发表于 2015-2-4 22:15:38 | 只看该作者
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。
小妖女 该用户已被删除
5#
发表于 2015-3-1 16:02:55 | 只看该作者
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
冷月葬花魂 该用户已被删除
6#
发表于 2015-3-10 20:23:36 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
若相依 该用户已被删除
7#
发表于 2015-3-17 10:09:27 | 只看该作者
ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-24 06:34:58 | 只看该作者
是目前ASP在UNIX/Linux上的应用可以说几乎为0)。所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-16 03:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表