ASP.Net开发新手常见问题备忘录
一位ASP.net初学者学习过程中整理的备忘录,包括“打开新的窗口并传送参数,为按钮添加对话框,删除表格选定记录,删除表格记录警告”等等常见问题的解决方法。
1. 打开新的窗口并传送参数:
传送参数:
以下为引用的内容: response.write("〈script>window.open ('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')〈/script>") |
接收参数:
以下为引用的内容: string a = Request.QueryString("id"); string b = Request.QueryString("id1"); |
2.为按钮添加对话框
以下为引用的内容: Button1.Attributes.Add("onclick","return confirm('确认?')"); button.attributes.add("onclick","if(confirm('are you sure...?')) {return true;}else{return false;}") |
3.删除表格选定记录
以下为引用的内容: int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex]; string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString() |
4.删除表格记录警告
以下为引用的内容: private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e) { switch(e.Item.ItemType) { case ListItemType.Item : case ListItemType.AlternatingItem : case ListItemType.EditItem: TableCell myTableCell; myTableCell = e.Item.Cells[14]; LinkButton myDeleteButton ; myDeleteButton = (LinkButton)myTableCell.Controls[0]; myDeleteButton.Attributes.Add ("onclick","return confirm('您是否确定要删除这条信息');"); break; default: break; } } |
5.点击表格行链接另一页
以下为引用的内容: private void grdCustomer_ItemDataBound (object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //点击表格打开 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) { string OrderItemID =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) { string OrderItemID =e.item.cells[1].Text; ... e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')"); } ★特别注意:【?id=】 处不能为 【?id =】 |
6.表格超连接列传递参数
以下为引用的内容: 〈asp:HyperLinkColumn Target="_blank" headertext="ID号" DataTextField="id" |
7.表格点击改变颜色
以下为引用的内容: if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) 写在DataGrid的_ItemDataBound里 if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem) |
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 e.g // in global.asax //其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :) Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理 |
10.清空Cookie
以下为引用的内容: Cookie.Expires=[DateTime]; |
11.自定义异常处理
以下为引用的内容: //自定义异常处理类 namespace MyAppException public AppException(string message) public AppException(string message,Exception innerException) //日志记录类 namespace MyEventLog WriteLog(TraceLevel.Error, message); /// 〈summary> WriteLog(TraceLevel.Warning, message); /// 〈summary> WriteLog(TraceLevel.Verbose, message); /// 〈summary> /// 〈summary> try EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName ); } 12.Panel 横向滚动,纵向自动扩展 〈asp:panel style="overflow-x:scroll;overflow-y:auto;">〈/asp:panel> |
13.回车转换成Tab
以下为引用的内容: 〈script language="javascript" for="document" event="onkeydown"> onkeydown="if(event.keyCode==13) event.keyCode=9" http://dotnet.aspx.cc/exam/enter2tab.aspx |
14.DataGrid超级连接列
以下为引用的内容: DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}" |
15.DataGrid行随鼠标变色
以下为引用的内容: 16.模板列 〈ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID"> 〈ASP:TEMPLATECOLUMN headertext="选中"> 后台代码 protected void CheckAll_CheckedChanged(object sender, System.EventArgs e) 17.数字格式化 【〈%#Container.DataItem("price")%>的结果是500.0000,怎样格式化为500.00?】 18.日期格式化 【aspx页面内:〈%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%> 〈%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%> 应该如何改?
【日期的验证表达式】 ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02])) B.以下正确的输入格式:[0001-12-31], [9999 09 30], [2002/03/03] ^\d{4}[\-\/\s]?((((0[13578])|(1[02]))[\-\/\s]?(([0-2][0-9])|(3[01])))| 【大小写转换】 HttpUtility.HtmlEncode(string); 19.如何设定全局变量 Global.asax中 20.怎样作到HyperLinkColumn生成的连接后,点击连接,打开新窗口? HyperLinkColumn有个属性Target,将器值设置成"_blank"即可.(Target="_blank") 【ASPNETMENU】点击菜单项弹出新窗口 〈?xml version="1.0" encoding="GB2312"?> 最好将你的aspnetmenu升级到1.2版 21.委托讨论 http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191 22.读取DataGrid控件TextBox值 foreach(DataGrid dgi in yourDataGrid.Items) 23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能? 〖思归〗 〈asp:TemplateColumn HeaderText="数量"> 〈asp:RegularExpressionValidator id="revS" runat="server" 〈asp:TemplateColumn HeaderText="单价"> 〈asp:RegularExpressionValidator id="revS2" runat="server" 〈/ItemTemplate> 〈asp:TemplateColumn HeaderText="金额"> 〈script language="javascript"> var q = txts[txts.length-3].value; if (isNaN(q) || isNaN(p)) q = parseInt(q); txts[txts.length-1].value = (q * p).toFixed(2); 24.datagrid选定比较底下的行时,为什么总是刷新一下,然后就滚动到了最上面,刚才选定的行因屏幕的关系就看不到了 page_load 25.在Datagrid中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ? private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e) 26.对话框 private static string ScriptBegin = "〈script language=\"JavaScript\">"; public static void ConfirmMessageBox(string PageTarget,string Content) string ConfirmContent="var retValue=window.confirm('"+Content+"');"+"if(retValue){window.location='"+PageTarget+"';}"; ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd; Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler; |