`

ASP.Net开发常见问题(1)

阅读更多

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" 
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("onmouseover","this.style.backgroundColor='#99cc00';
this.style.color='buttontext';this.style.cursor='default';");
e.Item.Attributes.Add("onmouseout","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

e.g

// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");

//其余的非HttpUnhandledException异常交给ASP.NET自己处理就okay了 :)
}

Redirect会导致post-back的产生从而丢失了错误信息,所以页面导向应该直接在服务器端执行,这样就可以在错误处理页面得到出错信息并进行相应的处理

 

10.清空Cookie

Cookie.Expires=[DateTime];
Response.Cookies("UserName").Expires = 0

 

11.自定义异常处理

//自定义异常处理类 
using System;
using System.Diagnostics;
namespace MyAppException
{
/// <summary>
/// 从系统异常类ApplicationException继承的应用程序异常处理类。
/// 自动将异常内容记录到Windows NT/2000的应用程序日志
/// </summary>
public class AppException:System.ApplicationException
{
public AppException()
{
if (ApplicationConfiguration.EventLogEnabled)
LogEvent("出现一个未知错误。");
}
public AppException(string message)
{
LogEvent(message);
}
public AppException(string message,Exception innerException)
{
LogEvent(message);
if (innerException != null)
{
LogEvent(innerException.Message);
}
}
//日志记录类
using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
namespace MyEventLog
{
/// <summary>
///     事件日志记录类,提供事件日志记录支持 
///     <remarks>
///         定义了4个日志记录方法 (error, warning, info, trace) 
///     </remarks>
/// </summary>
public class ApplicationLog
{
/// <summary>
///     将错误信息记录到Win2000/NT事件日志中
///     <param name="message">需要记录的文本信息</param>
/// </summary>
public static void WriteError(String message)
{

WriteLog(TraceLevel.Error, message);
}

/// <summary>
///     将警告信息记录到Win2000/NT事件日志中
///     <param name="message">需要记录的文本信息</param>
/// </summary>
public static void WriteWarning(String message)
{

WriteLog(TraceLevel.Warning, message);
}

/// <summary>
///     将提示信息记录到Win2000/NT事件日志中
///     <param name="message">需要记录的文本信息</param>
/// </summary>
public static void WriteInfo(String message)
{
WriteLog(TraceLevel.Info, message);
}
/// <summary>
///     将跟踪信息记录到Win2000/NT事件日志中
///     <param name="message">需要记录的文本信息</param>
/// </summary>
public static void WriteTrace(String message)
{

WriteLog(TraceLevel.Verbose, message);
}

/// <summary>
///    格式化记录到事件日志的文本信息格式
///     <param name="ex">需要格式化的异常对象</param>
///     <param name="catchInfo">异常信息标题字符串.</param>
///     <retvalue>
///         <para>格式后的异常信息字符串,包括异常内容和跟踪堆栈.</para>
///     </retvalue>
/// </summary>
public static String FormatException(Exception ex, String catchInfo)
{
StringBuilder strBuilder = new StringBuilder();
if (catchInfo != String.Empty)
{
strBuilder.Append(catchInfo).Append("\r\n");
}
strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace);
return strBuilder.ToString();
}
/// <summary>
///     实际事件日志写入方法
///     <param name="level">要记录信息的级别(error,warning,info,trace).</param>
///     <param name="messageText">要记录的文本.</param>
/// </summary>
private static void WriteLog(TraceLevel level, String messageText)
{

try
{   
EventLogEntryType LogEntryType;
switch (level)
{
case TraceLevel.Error:
LogEntryType = EventLogEntryType.Error;
break;
case TraceLevel.Warning:
LogEntryType = EventLogEntryType.Warning;
break;
case TraceLevel.Info:
LogEntryType = EventLogEntryType.Information;
break;
case TraceLevel.Verbose:
LogEntryType = EventLogEntryType.SuccessAudit;
break;
default:
LogEntryType = EventLogEntryType.SuccessAudit;
break;
}

EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName,         ApplicationConfiguration.EventLogSourceName );
//写入事件日志
eventLog.WriteEntry(messageText, LogEntryType);

}
catch {} //忽略任何异常
}    
} //class ApplicationLog
}

 

分享到:
评论

相关推荐

    asp.net开发新手常见问题集锦

    asp.net开发新手常见问题集锦 入门 编程

    asp.net 面试常见问题和答案

    ### ASP.NET面试常见问题与解答 #### 1. 创建并运行ASP.NET应用程序需要什么? 创建并运行一个ASP.NET应用程序的基本需求包括: - **操作系统**:Windows 2000、Windows Server 2003 或 Windows XP。 - **开发工具...

    ASP.NET常见问题集锦.zip

    asp.net200问-专家门诊—ASP.NET开发答疑 ASP.NetWebPage深入探讨.txt ASP.NET中为DataGrid添加合计字段.doc ASP.NET中实现DataGrid数据排序.doc asp.net中的弹出对话框.doc ASP.NET中自定义控件的创建和使用....

    asp.net常见开发技术(非常实用)

    这个经典收藏的“asp.net常见开发技术”文档显然包含了ASP.NET开发中的关键技术和实践,对于开发者来说是一份宝贵的资源。 1. **ASP.NET基本架构**:ASP.NET基于.NET Framework,它提供了一个强大的开发环境,支持...

    ASP.NET开发中的问题集

    在ASP.NET开发中,常见的一些问题包括但不限于以下几类: 1. **配置问题**:如IIS服务器配置不正确,导致应用无法启动;或者Web.config文件设置错误,影响了应用程序的功能。 2. **页面生命周期理解**:ASP.NET...

    ASP.NET开发答疑光盘.rar

    本答疑光盘聚焦于ASP.NET开发中的常见问题与解决策略,旨在帮助开发者提升技能,解决在实际项目开发中遇到的困扰。 在ASP.NET开发中,首先我们需要理解基本概念,如Web Forms、MVC和Web API。Web Forms是ASP.NET...

    ASP.Net C# 开发笔记

    * 了解如何解决 ASP.NET 开发中的常见问题 * 了解如何提高 ASP.NET 开发的效率和质量 知识点七:C# 语言应用 * 了解 C# 语言的基本特点和应用 * 了解如何使用 C# 语言进行编程 * 了解如何使用 C# 语言实现各种算法...

    ASP.NET网站开发架构指南

    ASP.NET是微软公司推出的用于构建Web应用程序的框架,它提供了丰富的功能和强大的工具,使得开发者可以高效地构建动态、交互式的网站。...理解并熟练掌握这些架构模式,对于提升ASP.NET开发的效率和质量至关重要。

    asp.net开发示例

    本资源包"asp.net开发示例"提供了ASP.NET开发的一些实例代码和常见技术问题,非常适合初学者和有经验的开发者用来学习和参考。 首先,我们来看"开发例子"这个标签。在ASP.NET开发中,示例代码是非常重要的学习工具...

    asp.net开发技术大全_附带光盘

    C#是ASP.NET的主要编程语言,它的简洁性和面向对象特性使得在ASP.NET开发中非常受欢迎。 ASP.NET开发技术大全涵盖了许多关键知识点,以下将对这些内容进行详细阐述: 1. **ASP.NET架构**:ASP.NET基于HTTP协议,...

    ASP.NET开发答疑200问

    这个"ASP.NET开发答疑200问"的主题显然涵盖了ASP.NET开发中的常见问题和解决方案,旨在帮助开发者解决在实际工作中遇到的问题。下面将根据提供的文件名来推测可能包含的知识点: 1. **Setup.Exe**: 这通常是安装...

    3. ASP.NET程序开发资源库.rar

    压缩包中的"随书附带说明书.doc"很可能包含了对ASP.NET开发的详细指南,包括如何使用这些资源、最佳实践、常见问题解答等内容。说明书可能涵盖ASP.NET的基础知识,例如页面生命周期、控件事件、数据绑定、状态管理等...

    ASP.NET开发典型模块大全 (修订版) (源代码)

    《ASP.NET开发典型模块大全(修订版)》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术,全面地介绍了如何使用asp.net进行各领域的web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的...

    专家门诊ASP.net开发答疑200问

    【ASP.NET开发答疑200问】是一份深入浅出的IT学习资源,专为初学者设计,旨在解决ASP.NET开发中的常见问题和困惑。这个资料包包含了丰富的实例和解答,帮助开发者提升技能,理解ASP.NET的核心概念和技术。 1. **ASP...

    ASP.NET常见错误及解决方案

    ASP.NET是微软公司开发的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了丰富的功能和工具,简化了Web...通过不断学习和实践,可以有效地避免和解决这些常见问题,提升ASP.NET开发的效率和质量。

    ASP.NET开发典型模块大全源代码(1-10章)

    《ASP.NET开发典型模块大全》以关键技术和热点技术为核心,通过27个典型模块和5章热点技术、全面地介绍了如何使用ASP.NET进行各领域的Web项目开发。全书共3篇分为32章,第1篇关键模块篇,覆盖网站开发的关键领域,...

    专家门诊--ASP.NET开发答疑

    通过这个“专家门诊”的源码学习,开发者不仅可以深入理解ASP.NET的关键特性,还能积累实际开发经验,提升解决问题的能力。无论你是初学者还是有一定基础的开发者,都可以从中获得宝贵的知识和启示。

    Asp.Net开发控件

    Asp.Net开发控件是Web应用开发中的重要组成部分,它为开发者提供了丰富的界面元素和功能,使得构建交互式、动态的网页变得更加便捷。Asp.Net框架内置了大量的服务器控件,这些控件可以直接在服务器端处理事件,简化...

    ASP.NET 开发实例完全剖析

    使用ASP.NET开发财务管理系统,可以利用其强大的数据处理能力,结合数据库技术(如SQL Server)实现高效的数据存储和查询,同时通过Web界面提供友好的用户交互。 2. 会员系统:会员系统通常用于跟踪和管理用户的...

    ASP.NET开发OA的例子(开发文档)

    2. **MVC(Model-View-Controller)模式**:另一种常见的ASP.NET开发模式,强调分离关注点,将业务逻辑、视图呈现和用户交互分离。MVC模式更利于测试和代码组织,适合大型项目。 3. **C#编程语言**:ASP.NET主要...

Global site tag (gtag.js) - Google Analytics