仓酷云

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

[学习教程] ASP.NET网页编程之ASP.NET静态网页制造初学者备忘录

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

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

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

x
一般的指的.net就是跟java相对的那种,主要是做企业级应用的。你如果想学这个,主要就是学C#和数据库。(ASP.NET好像很重要的,应该也要学的,ASP.NET上好像可以结合VB和C#等多种语言,但是微软主推C#)asp.net|初学|静态|网页  一名ASP.net初学者进修过程当中收拾的备忘录,包含“翻开新的窗口并传送参数,为按钮增加对话框,删除表格选定纪录,删除表格纪录告诫”等等罕见成绩的办理办法。
1.翻开新的窗口并传送参数:
  传送参数:
response.write("<script>window.open
(*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+")</script>")
  吸收参数:
stringa=Request.QueryString("id");
stringb=Request.QueryString("id1");
2.为按钮增加对话框
Button1.Attributes.Add("onclick","returnconfirm(确认?)");
button.attributes.add("onclick","if(confirm(areyousure...?))
{returntrue;}else{returnfalse;}")
3.删除表格选定纪录
intintEmpID=(int)MyDataGrid.DataKeys[e.Item.ItemIndex];
stringdeleteCmd="DELETEfromEmployeewhereemp_id="+intEmpID.ToString()
4.删除表格纪录告诫
privatevoidDataGrid_ItemCreated(Objectsender,DataGridItemEventArgse)
{
switch(e.Item.ItemType)
{
caseListItemType.Item:
caseListItemType.AlternatingItem:
caseListItemType.EditItem:
TableCellmyTableCell;
myTableCell=e.Item.Cells[14];
LinkButtonmyDeleteButton;
myDeleteButton=(LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add
("onclick","returnconfirm(您是不是断定要删除这条信息);");
break;
default:
break;
}
}
5.点击表格行链接另外一页
privatevoidgrdCustomer_ItemDataBound
(objectsender,System.Web.UI.WebControls.DataGridItemEventArgse)
{
//点击表格翻开
if(e.Item.ItemType==ListItemType.Item||
e.Item.ItemType==ListItemType.AlternatingItem)
e.Item.Attributes.Add("onclick","window.open
(Default.aspx?id="+e.Item.Cells[0].Text+");");
}
  双击表格毗连到另外一页,在itemDataBind事务中
if(e.Item.ItemType==ListItemType.Item||
e.Item.ItemType==ListItemType.AlternatingItem)
{
stringOrderItemID=e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick",
"location.href=../ShippedGrid.aspx?id="+OrderItemID+"");
}
  双击表格翻开新一页
if(e.Item.ItemType==ListItemType.Item||
e.Item.ItemType==ListItemType.AlternatingItem)
{
stringOrderItemID=e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick",
"open(../ShippedGrid.aspx?id="+OrderItemID+")");
}
  ★出格注重:【?id=】处不克不及为【?id=】
6.表格超毗连传记递参数
<asp:HyperLinkColumnTarget="_blank"headertext="ID号"DataTextField="id"
NavigateUrl="aaa.aspx?id=<%#DataBinder.Eval(Container.DataItem,"数据字段1")%>
&name=<%#DataBinder.Eval(Container.DataItem,"数据字段2")%>/>
7.表格点击改动色彩
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onclick","this.style.backgroundColor=#99cc00;
this.style.color=buttontext;this.style.cursor=default;");
}
写在DataGrid的_ItemDataBound里
if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmou搜索引擎优化ver","this.style.backgroundColor=#99cc00;
this.style.color=buttontext;this.style.cursor=default;");
e.Item.Attributes.Add("onmou搜索引擎优化ut","this.style.backgroundColor=;this.style.color=;");
}
8.关于日期格局
  日期格局设定
DataFormatString="{0:yyyy-MM-dd}"
  我以为应当在itembound事务中
e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))
9.猎取毛病信息并到指定页面
  不要利用Response.Redirect,而应当利用Server.Transfer
//inglobal.asax
protectedvoidApplication_Error(Objectsender,EventArgse){
if(Server.GetLastError()isHttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//其他的非HttpUnhandledException非常交给ASP.NET本人处置就okay了:)
}
  Redirect会招致post-back的发生从而丧失了毛病信息,以是页面导向应当间接在服务器端实行,如许就能够在毛病处置页面失掉堕落信息并举行响应的处置
10.清空Cookie
Cookie.Expires=[DateTime];
Response.Cookies("UserName").Expires=0
11.自界说非常处置
//自界说非常处置类
usingSystem;
usingSystem.Diagnostics;
namespaceMyAppException
{
///<summary>
///从体系非常类ApplicationException承继的使用程序非常处置类。
///主动将非常内容纪录到WindowsNT/2000的使用程序日记
///</summary>
publicclassAppException:System.ApplicationException
{
publicAppException()
{
if(ApplicationConfiguration.EventLogEnabled)
LogEvent("呈现一个未知毛病。");
}
publicAppException(stringmessage)
{
LogEvent(message);
}
publicAppException(stringmessage,ExceptioninnerException)
{
LogEvent(message);
if(innerException!=null)
{
LogEvent(innerException.Message);
}
}
//日记纪录类
usingSystem;
usingSystem.Configuration;
usingSystem.Diagnostics;
usingSystem.IO;
usingSystem.Text;
usingSystem.Threading;
namespaceMyEventLog
{
///<summary>
///事务日记纪录类,供应事务日记纪录撑持
///<remarks>
///界说了4个日记纪录办法(error,warning,info,trace)
///</remarks>
///</summary>
publicclassApplicationLog
{
///<summary>
///将毛病信息纪录到Win2000/NT事务日记中
///<paramname="message">必要纪录的文本信息</param>
///</summary>
publicstaticvoidWriteError(Stringmessage)
{
WriteLog(TraceLevel.Error,message);
}
///<summary>
///将告诫信息纪录到Win2000/NT事务日记中
///<paramname="message">必要纪录的文本信息</param>
///</summary>
publicstaticvoidWriteWarning(Stringmessage)
{
WriteLog(TraceLevel.Warning,message);
}
///<summary>
///将提醒信息纪录到Win2000/NT事务日记中
///<paramname="message">必要纪录的文本信息</param>
///</summary>
publicstaticvoidWriteInfo(Stringmessage)
{
WriteLog(TraceLevel.Info,message);
}
///<summary>
///将跟踪信息纪录到Win2000/NT事务日记中
///<paramname="message">必要纪录的文本信息</param>
///</summary>
publicstaticvoidWriteTrace(Stringmessage)
{
WriteLog(TraceLevel.Verbose,message);
}
///<summary>
///格局化纪录到事务日记的文本信息格局
///<paramname="ex">必要格局化的非常工具</param>
///<paramname="catchInfo">非常信息题目字符串.</param>
///<retvalue>
///<para>格局后的非常信息字符串,包含非常内容和跟踪仓库.</para>
///</retvalue>
///</summary>
publicstaticStringFormatException(Exceptionex,StringcatchInfo)
{
StringBuilderstrBuilder=newStringBuilder();
if(catchInfo!=String.Empty)
{
strBuilder.Append(catchInfo).Append("
");
}
strBuilder.Append(ex.Message).Append("
").Append(ex.StackTrace);
returnstrBuilder.ToString();
}
///<summary>
///实践事务日记写进办法
///<paramname="level">要纪录信息的级别(error,warning,info,trace).</param>
///<paramname="messageText">要纪录的文本.</param>
///</summary>
privatestaticvoidWriteLog(TraceLevellevel,StringmessageText)
{
try
{
EventLogEntryTypeLogEntryType;
switch(level)
{
caseTraceLevel.Error:
LogEntryType=EventLogEntryType.Error;
break;
caseTraceLevel.Warning:
LogEntryType=EventLogEntryType.Warning;
break;
caseTraceLevel.Info:
LogEntryType=EventLogEntryType.Information;
break;
caseTraceLevel.Verbose:
LogEntryType=EventLogEntryType.SuccessAudit;
break;
default:
LogEntryType=EventLogEntryType.SuccessAudit;
break;
}
EventLogeventLog=newEventLog("Application",ApplicationConfiguration.EventLogMachineName,ApplicationConfiguration.EventLogSourceName);
//写进事务日记
eventLog.WriteEntry(messageText,LogEntryType);
}
catch{}//疏忽任何非常
}
}//classApplicationLog
}
12.Panel横向转动,纵向主动扩大
<asp:panelstyle="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13.回车转换成Tab
<scriptlanguage="javascript"for="document"event="onkeydown">
if(event.keyCode==13&&event.srcElement.type!=button&&
event.srcElement.type!=submit&&event.srcElement.type!=reset
&&event.srcElement.type!=&&event.srcElement.type!=textarea);
event.keyCode=9;
</script>

14.DataGrid超等毗连列
DataNavigateUrlField="字段名"DataNavigateUrlFormatString=http://xx/inc/delete.aspx?ID={0}
15.DataGrid行随鼠标变色
privatevoidDGzf_ItemDataBound
(objectsender,System.Web.UI.WebControls.DataGridItemEventArgse)
{
if(e.Item.ItemType!=ListItemType.Header)
{
e.Item.Attributes.Add("onmou搜索引擎优化ut","this.style.backgroundColor=
""+e.Item.Style["BACKGROUND-COLOR"]+""");
e.Item.Attributes.Add("onmou搜索引擎优化ver","this.style.backgroundColor=""+"#EFF3F7"+""");
}
}
16.模板列
<ASP:TEMPLATECOLUMNvisible="False"sortexpression="demo"headertext="ID">
<ITEMTEMPLATE>
<ASP:LABELtext=<%#DataBinder.Eval(Container.DataItem,
"ArticleID")%>runat="server"width="80%"id="lblColumn"/>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMNheadertext="选中">
<HEADERSTYLEwrap="False"horizontalalign="Center"></HEADERSTYLE>
<ITEMTEMPLATE>
<ASP:CHECKBOXid="chkExport"runat="server"/>
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOXid="chkExportON"runat="server"enabled="true"/>
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
  背景代码
protectedvoidCheckAll_CheckedChanged(objectsender,System.EventArgse)
{
//改动列的选定,完成全选或全不选。
CheckBoxchkExport;
if(CheckAll.Checked)
{
foreach(DataGridItemoDataGridIteminMyDataGrid.Items)
{
chkExport=(CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked=true;
}
}
else
{
foreach(DataGridItemoDataGridIteminMyDataGrid.Items)
{
chkExport=(CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked=false;
}
}
}
17.数字格局化
【<%#Container.DataItem("price")%>的了局是500.0000,如何格局化为500.00?】
<%#Container.DataItem("price","{0:¥#,##0.00}")%>
inti=123456;
strings=i.ToString("###,###.00");
18.日期格局化
【aspx页面内:<%#DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
显现为:2004-8-1119:44:28
我只想要:2004-8-11】
<%#DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>
应当怎样改?
【格局化日期】
掏出来,通常为object
((DateTime)objectFromDB).ToString("yyyy-MM-dd");
【日期的考证表达式】
A.以下准确的输出格局:[2004-2-29],[2004-02-2910:29:39pm],[2004/12/31]
^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))
[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|
([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468]
[1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]
?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|
([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))
(s(((0?[1-9])|(1[0-2])):([0-5][0-9])((s)|(:([0-5][0-9])s))
([AM|PM|am|pm]{2,2})))?$
B.以下准确的输出格局:[0001-12-31],[99990930],[2002/03/03]
^d{4}[-/s]?((((0[13578])|(1[02]))[-/s]?(([0-2][0-9])|(3[01])))|
(((0[469])|(11))[-/s]?(([0-2][0-9])|(30)))|(02[-/s]?[0-2][0-9]))$
【巨细写转换】
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19.怎样设定全局变量
  Global.asax中
  Application_Start()事务中
  增加Application[属性名]=xxx;
  就是你的全局变量
20.如何作到HyperLinkColumn天生的毗连后,点击毗连,翻开新窗口?
  HyperLinkColumn有个属性Target,将器值设置成"_blank"便可.(Target="_blank")
  【ASPNETMENU】点击菜单项弹出新窗口
  在你的menuData.xml文件的菜单项中到场URLTarget="_blank"
  如:
<?xmlversion="1.0"encoding="GB2312"?>
<MenuDataImagesBaseURL="images/">
<MenuGroup>
<MenuItemLabel="内参信息"URL="Infomation.aspx">
<MenuGroupID="BBC">
<MenuItemLabel="通告信息"URL="Infomation.aspx"
URLTarget="_blank"LeftIcon="file.gif"/>
<MenuItemLabel="体例信息简报"URL="NewInfo.aspx"LeftIcon="file.gif"/>
......
  最好将你的aspnetmenu晋级到1.2版
21.读取DataGrid控件TextBox值
foreach(DataGriddgiinyourDataGrid.Items)
{
TextBoxtb=(TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}
22.在DataGrid中有3个模板列包括Textbox分离为DG_ShuLiang(数目)DG_DanJian(单价)DG_JinE(金额)分离在5.6.7列,请求在录进数目及单价的时分主动算出金额即:数目*单价=金额还请求录进时限定为数值型.我怎样用客户端剧本完成这个功效?
  〖思回〗
<asp:TemplateColumnHeaderText="数目">
<ItemTemplate>
<asp:TextBoxid="ShuLiang"runat=server
Text=<%#DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>
onkeyup="javascript:DoCal()"
/><asp:RegularExpressionValidatorid="revS"runat="server"
ControlToValidate="ShuLiang"ErrorMessage="mustbeinteger"ValidationExpression="^d+$"/>
</ItemTemplate>
</asp:TemplateColumn><asp:TemplateColumnHeaderText="单价">
<ItemTemplate>
<asp:TextBoxid="DanJian"runat=server
Text=<%#DataBinder.Eval(Container.DataItem,"DG_DanJian")%>
onkeyup="javascript:DoCal()"
/><asp:RegularExpressionValidatorid="revS2"runat="server"
ControlToValidate="DanJian"ErrorMessage="mustbenumeric"ValidationExpression="^d+(.d*)?$"/></ItemTemplate>
</asp:TemplateColumn><asp:TemplateColumnHeaderText="金额">
<ItemTemplate>
<asp:TextBoxid="JinE"runat=server
Text=<%#DataBinder.Eval(Container.DataItem,"DG_JinE")%>/>
</ItemTemplate>
</asp:TemplateColumn>
<scriptlanguage="javascript">
functionDoCal()
{
vare=event.srcElement;
varrow=e.parentNode.parentNode;
vartxts=row.all.tags("INPUT");
if(!txts.length||txts.length<3)
return;
varq=txts[txts.length-3].value;
varp=txts[txts.length-2].value;
if(isNaN(q)||isNaN(p))
return;
q=parseInt(q);
p=parseFloat(p);
txts[txts.length-1].value=(q*p).toFixed(2);
}
</script>
23.datagrid选定对照底下的行时,为何老是革新一下,然后就转动到了最下面,方才选定的行因屏幕的干系就看不到了
page_load
page.smartNavigation=true
24.在Datagrid中修正数据,当点击编纂键时,数据呈现在文本框中,怎样把持文本框的巨细?
privatevoidDataGrid1_ItemDataBound(objsender,DataGridItemEventArgse)
{
for(inti=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Width","80px")
}
}
25.对话框
privatestaticstringScriptBegin="<scriptlanguage="JavaScript">";
privatestaticstringScriptEnd="</script>";
publicstaticvoidConfirmMessageBox(stringPageTarget,stringContent)
{
stringConfirmContent="varretValue=window.confirm("+Content+");"+"if(retValue){window.location="+PageTarget+";}";
ConfirmContent=ScriptBegin+ConfirmContent+ScriptEnd;
PageParameterPage=(Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Response.Write(strScript);
}
什么叫数据库怎么样?什么意思?你想单学数据库。(其实变成是我问的)
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-20 05:17:09 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
再见西城 该用户已被删除
板凳
发表于 2015-1-27 07:53:13 | 只看该作者
但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
莫相离 该用户已被删除
地板
发表于 2015-2-5 03:09:26 | 只看该作者
ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。
海妖 该用户已被删除
5#
发表于 2015-2-11 02:51:06 | 只看该作者
代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。
愤怒的大鸟 该用户已被删除
6#
发表于 2015-3-1 19:45:23 | 只看该作者
碰到复杂点的问题都不知道能不能解决,现在有点实力的公司都选择自已在开源的基础上做开发。但没听说过有人在IIS上做改进的,windows、sqlserver集群方面的应用也很少见。
再现理想 该用户已被删除
7#
发表于 2015-3-10 22:43:12 | 只看该作者
ASP.net的服务器,要求安装一个.net环境,当然我这里指的是windows系统,顺便点一下,.net只能放在windows环境里来运行。Asp.net1.1的就装Framework1.1,Asp.net2.0的就装Framework2.0。
透明 该用户已被删除
8#
发表于 2015-3-17 12:00:38 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-24 09:30:21 | 只看该作者
现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-22 16:09

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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