0. Utilice la sesión para determinar si iniciar sesión
si (Session["login"] == null)
{
Respuesta.Redirect("error.aspx");
}
1. Abra una nueva ventana y pase los parámetros:
Parámetros de transmisión:
respuesta.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
Recibir parámetros:
cadena a = Request.QueryString("id");
cadena b = Request.QueryString("id1");
2. Agregue un cuadro de diálogo al botón
Button1.Attributes.Add("onclick","return confirm('Confirm?')")
; .. .?')){return true;}else{return false;}")
3. Eliminar el registro seleccionado en la tabla
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "BORRAR del Empleado donde emp_id = " + intEmpID.ToString()
4. Advertencia de eliminación del registro de la tabla
vacío privado DataGrid_ItemCreated (remitente del objeto, DataGridItemEventArgs e)
{
cambiar(e.Item.ItemType)
{
caso ListItemType.Item:
caso ListItemType.AlternatingItem:
caso ListItemType.EditItem:
TableCell miTableCell;
miTableCell = e.Item.Cells[14];
LinkButton miDeleteButton;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return confirm('¿Está seguro de que desea eliminar este mensaje');");
romper;
por defecto:
romper;
}
}
5. Haga clic en la fila de la tabla para vincular a otra página
privada void grdCustomer_ItemDataBound(remitente del objeto, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Haz clic en el formulario para abrir
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 + "');");
}
Haga doble clic en la tabla para conectarse a otra página en el evento itemDataBind
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
cadena OrderItemID =e.item.cells[1].Texto;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
Haga doble clic en la tabla para abrir una nueva página.
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
cadena OrderItemID =e.item.cells[1].Texto;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}
★Nota especial: [?id=] no puede ser [?id =]
6. Pase parámetros en las columnas de hipervínculo de la tabla
<asp:HyperLinkColumn Target="_blank" headertext="Número de ID" DataTextField="id" NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "Data Field 1")%>' & nombre='<%# DataBinder.Eval(Container.DataItem, "Campo de datos 2")%>' />
7. Haga clic en la tabla para cambiar el color.
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';");
}
Escrito en _ItemDataBound de DataGrid
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. Acerca del formato de fecha
configuración del formato de fecha
DataFormatString="{0:yyyy-MM-dd}"
Creo que debería estar en el evento vinculado al elemento
e.items.cell["tu columna"].text=DateTime.Parse(e.items.cell["tu columna"].text.ToString("aaaa-MM-dd"))
9. Obtener información de error No use Response.Redirect a la página especificada, pero use Server.Transfer.
p.ej.
// en global.asax
void protegido Application_Error (remitente del objeto, EventArgs e) {
si (Server.GetLastError() es HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//Está bien dejar el resto de las excepciones que no son HttpUnhandledException al propio ASP.NET :)
}
La redirección generará una devolución de datos y se perderá la información de error, por lo que la guía de la página debe ejecutarse directamente en el lado del servidor, de modo que la información de error se pueda obtener en la página de manejo de errores y procesarse en consecuencia.
10.Borrar cookies
Cookie.Expires=[FechaHora];
Respuesta.Cookies("Nombre de usuario").Expira = 0
11. Manejo de excepciones personalizado
// Clase de manejo de excepciones personalizado
usando Sistema;
usando System.Diagnostics
espacio de nombres MyAppException
;
{
/// <resumen>
/// Clase de manejo de excepciones de aplicaciones heredada de la clase de excepción del sistema ApplicationException.
/// Registra automáticamente el contenido de la excepción en el registro de la aplicación de Windows NT/2000
/// </summary>
AppException de clase pública: System.ApplicationException
{
excepción de aplicación pública()
{
si (ApplicationConfiguration.EventLogEnabled)
LogEvent("Se produjo un error desconocido.");
}
AppException pública (mensaje de cadena)
{
LogEvent(mensaje);
}
AppException pública (mensaje de cadena, excepción interna)
{
LogEvent(mensaje);
si (excepción interna! = nulo)
{
LogEvent(innerException.Mensaje);
}
}
//Clase de registro
usando Sistema;
usando System.Configuration;
utilizando System.Diagnostics;
usando System.IO;
usando System.Text;
usando System.Threading
espacio de nombres MyEventLog
;
{
/// <resumen>
/// Clase de registro de eventos, que proporciona soporte de registro de eventos
/// <comentarios>
/// Define 4 métodos de registro (error, advertencia, información, seguimiento)
/// </comentarios>
/// </summary>
Registro de aplicaciones de clase pública
{
/// <resumen>
/// Registrar información de error en el registro de eventos de Win2000/NT
/// <param name="message">Información de texto que se registrará</param>
/// </summary>
WriteError vacío estático público (mensaje de cadena)
{
WriteLog(TraceLevel.Error, mensaje);
}
/// <resumen>
/// Registra información de advertencia en el registro de eventos de Win2000/NT
/// <param name="message">Información de texto que se registrará</param>
/// </summary>
WriteWarning vacío estático público (mensaje de cadena)
{
WriteLog(TraceLevel.Warning, mensaje);
}
/// <resumen>
/// Registre la información del mensaje en el registro de eventos de Win2000/NT
/// <param name="message">Información de texto que se registrará</param>
/// </summary>
WriteInfo vacío estático público (mensaje de cadena)
{
WriteLog(TraceLevel.Info, mensaje);
}
/// <resumen>
/// Registrar información de seguimiento en el registro de eventos de Win2000/NT
/// <param name="message">Información de texto que se registrará</param>
/// </summary>
WriteTrace vacío estático público (mensaje de cadena)
{
WriteLog(TraceLevel.Detallado, mensaje);
}
/// <resumen>
/// Formatear el formato de información de texto registrado en el registro de eventos
/// <param name="ex">Objeto de excepción que necesita ser formateado</param>
/// <param name="catchInfo">Cadena de título de información de excepción.</param>
/// <valor de retirada>
/// <para>Cadena de información de excepción formateada, incluido el contenido de la excepción y la pila de seguimiento.</para>
/// </retvalor>
/// </summary>
FormatException de cadena estática pública (excepción ex, cadena catchInfo)
{
StringBuilder strBuilder = nuevo StringBuilder();
si (catchInfo! = Cadena.Vacío)
{
strBuilder.Append(catchInfo).Append("rn");
}
strBuilder.Append(ex.Message).Append("rn").Append(ex.StackTrace);
devolver strBuilder.ToString();
}
/// <resumen>
/// Método de escritura del registro de eventos real
/// <param name="level">El nivel de información que se registrará (error, advertencia, información, seguimiento).</param>
/// <param name="messageText">Texto a grabar.</param>
/// </summary>
WriteLog vacío estático privado (nivel TraceLevel, texto de mensaje de cadena)
{
intentar
{
EventLogEntryType LogEntryType;
interruptor (nivel)
{
caso TraceLevel.Error:
LogEntryType = EventLogEntryType.Error;
romper;
caso TraceLevel. Advertencia:
LogEntryType = EventLogEntryType.Warning;
romper;
caso TraceLevel.Info:
LogEntryType = EventLogEntryType.Información;
romper;
caso TraceLevel.Detallado:
LogEntryType = EventLogEntryType.SuccessAudit;
romper;
por defecto:
LogEntryType = EventLogEntryType.SuccessAudit;
romper;
}
EventLog eventLog = new EventLog("Aplicación", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName);
//escribir registro de eventos
eventLog.WriteEntry (texto del mensaje, tipo de entrada de registro)
;
catch {} //Ignora cualquier excepción
}
} //clase Registro de aplicaciones
}
12.El panel se desplaza horizontalmente y se expande automáticamente verticalmente
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Convertir Enter en Tab
<script language="javascript" para="documento" evento="onkeydown">
if(event.keyCode==13 && event.srcElement.type!='botón' && event.srcElement.type!='enviar' && event.srcElement.type!='reset' && event.srcElement.type!=' '&& event.srcElement.type!='textarea');
evento.keyCode=9;
</script>
onkeydown="if(event.keyCode==13) event.keyCode=9"
http://dotnet.aspx.cc/exam/enter2tab.aspx
14.Columna de súper conexión DataGrid
DataNavigateUrlField="Nombre de campo" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID={0 }"
15.Las filas de DataGrid cambian de color con el mouse
vacío privado DGzf_ItemDataBound (remitente del objeto, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
si (e.Item.ItemType!=ListItemType.Header)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=""+e.Item.Style["FONDO-COLOR"]+""");
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=""+ "#EFF3F7"+""");
}
}
16. Columna de plantilla
<ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
<PLANTILLA DE ARTÍCULO>
<ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext="verificar">
<HEADERSTYLE wrap="False" horizontalalign="Centro"></HEADERSTYLE>
<PLANTILLA DE ARTÍCULO>
<ASP:CHECKBOX id="chkExport" runat="servidor" />
</ITEMTEMPLATE>
<EDITAR PLANTILLA DE ARTÍCULO>
<ASP:CHECKBOX id="chkExportON" runat="servidor" habilitado="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
Código backend
protegido void CheckAll_CheckedChanged(remitente del objeto, System.EventArgs e)
{
//Cambia la selección de columnas para seleccionar todas o ninguna.
Casilla de verificación chkExportar;
si (Marcar todo. Marcado)
{
foreach(DataGridItem oDataGridItem en MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = verdadero;
}
}
demás
{
foreach(DataGridItem oDataGridItem en MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = falso;
}
}
}
17. Formato de números [El resultado de <%#Container.DataItem("price")%> es 500.0000, ¿cómo formatearlo a 500.00?]
<%#Container.DataItem("price","{0:¥# , ##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
18. Formato de fecha
[En la página aspx: <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
Mostrado como: 2004-8-11 19:44:28
Solo quiero: 2004-8-11]
<%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date", "{0:yyyy-Md}")%>
¿Cómo debo cambiarlo?
[Formatear fecha]
Sácalo, normalmente objeta.
((DateTime)objectFromDB).ToString("aaaa-MM-dd");
[Expresión de validación para fecha]
A. El siguiente formato de entrada correcto: [2004-2-29], [2004-02-29 10:29:39 pm], [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. El siguiente formato de entrada correcto: [0001-12-31], [9999 09 30], [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])) $
[Conversión de mayúsculas y minúsculas]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. Cómo configurar variables globales
En el evento Application_Start()
en Global.asax
, agregue Application[nombre del atributo] = xxx;
que es su variable global
20. ¿Cómo hacer clic en la conexión para abrir una nueva ventana después de la conexión generada por HyperLinkColumn?
HyperLinkColumn tiene un atributo Target, simplemente establezca el valor en "_blank". (Target="_blank")
[ASPNETMENU] Haga clic en el elemento del menú para que aparezca una nueva ventana. Agregue URLTarget="_blank" al elemento del menú en su menuData. Archivo .xml.
como:
<?xml versión="1.0" codificación="GB2312"?>
<MenúDatos ImagesBaseURL="imágenes/">
<Grupo de menús>
<MenuItem Label="Información de parámetros internos" URL="Infomation.aspx" >
<ID de grupo de menú="BBC">
<MenuItem Label="Información del anuncio" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Preparar informe informativo" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
Lo mejor es actualizar su aspnetmenu a la versión 1.2
21. Delegar discusión
http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191
http://dev.csdn.net/develop/article/22/22951.shtm
22. Lea el valor del cuadro de texto del control DataGrid
para cada uno (DataGrid dgi en yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Texto....
}
23. Hay tres columnas de plantilla en el DataGrid que contienen cuadros de texto: DG_ShuLiang (cantidad), DG_DanJian (precio unitario) y DG_JinE (monto) respectivamente en la columna 5.6.7. Se requiere calcular automáticamente el monto al ingresar la cantidad. y precio unitario, es decir: cantidad * precio unitario = La cantidad también debe limitarse a valores numéricos cuando se ingresa. ¿Cómo puedo usar el script del cliente para implementar esta función
?
<asp:TemplateColumn HeaderText="Cantidad">
<Plantilla de artículo>
<asp:TextBox id="ShuLiang" runat='servidor' Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS" runat="servidor" ControlToValidate="ShuLiang" ErrorMessage="debe ser un número entero" ValidationExpression="^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Precio unitario">
<Plantilla de artículo>
<asp:TextBox id="DanJian" runat='servidor' Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS2" runat="servidor" ControlToValidate="DanJian" ErrorMessage="debe ser numérico" ValidationExpression="^d+(.d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Cantidad">
<Plantilla de artículo>
<asp:TextBox id="JinE" runat='servidor' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</ItemTemplate>
</asp:ColumnaPlantilla>
<lenguaje de escritura="javascript">
funciónDoCal()
{
var e = evento.srcElement;
var fila = e.parentNode.parentNode;
var txts = fila.all.tags("ENTRADA");
si (!txts.length || txts.length < 3)
retorno;
var q = txts[txts.length-3].valor;
var p = txts[txts.length-2].valor
si (isNaN(q) || isNaN(p))
retorno;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].valor = (q * p).toFixed(2);
}
</script>
24. Cuando se seleccionan las filas en la parte inferior de la cuadrícula de datos para comparar, ¿por qué siempre se actualiza y luego se desplaza hacia la parte superior? Las filas recién seleccionadas no se pueden ver debido a la pantalla.
carga_página
page.smartNavigation=true
25. Modificar datos en Datagrid Cuando se hace clic en la tecla de edición, los datos aparecen en el cuadro de texto. ¿Cómo controlar el tamaño del cuadro de texto
privado vacío DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
para(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Ancho", "80px")
}
}
26. cuadro de diálogo
cadena estática privada ScriptBegin = "<lenguaje de script="JavaScript">";
cadena estática privada ScriptEnd = "</script>";
vacío estático público ConfirmMessageBox (cadena PageTarget, cadena Contenido)
{
ConfirmContent
="var retvalue="/blog/window.confirm('"+Content+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
+ Confirmar contenido + ScriptEnd;
página ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirmar",ConfirmarContenido);
//Respuesta.Escribir(strScript);
}
http://www.cnblogs.com/robber/archive/2007/01/09/615835.html