0. Utilice la sesión para determinar si iniciar sesión
if(Sesión["iniciar sesión"] == nulo)
{
Respuesta.Redirect("error.aspx");
}
1. Abra una nueva ventana y transfiera 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('¿Confirmar?')");
button.attributes.add("onclick","if(confirm('¿estás seguro...?')){return true;}else{return false;}")
3. Eliminar registros seleccionados en la tabla.
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
cadena eliminarCmd = "ELIMINAR del Empleado donde emp_id = " + intEmpID.ToString()
4. Eliminar advertencia de registro de formulario
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 una fila de la tabla para vincularla a otra página.
privado vacío 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. Pasar 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 de formato de fecha
DataFormatString="{0:aaaa-MM-dd}"
Creo que debería estar en el evento vinculado al artículo.
e.items.cell["tu columna"].text=DateTime.Parse(e.items.cell["tu columna"].text.ToString("aaaa-MM-dd"))
9. Para obtener información de error e ir a la página especificada, no utilice Response.Redirect, sino 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 personalizada
usando Sistema;
utilizando 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.");
}
publicAppException (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(mensajeTexto, LogEntryType);
}
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="si(event.keyCode==13) event.keyCode=9"
14.Columna de súper conexión DataGrid
DataNavigateUrlField="Nombre de campo" DataNavigateUrlFormatString="}"
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 detrás
vacío protegido 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("precio","{0:¥#,##0.00}")%>
int i = 123456;
cadena 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 debería cambiarse?
[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 caso]
HttpUtility.HtmlEncode(cadena);
HttpUtility.HtmlDecode (cadena)
19. Cómo configurar variables globales
Global.asax
En el evento Application_Start()
Agregar aplicación[nombre de propiedad] = xxx;
Es tu variable global
20. ¿Cómo abrir una nueva ventana después de hacer clic en 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 abrir una nueva ventana. Agregue URLTarget="_blank" al elemento del menú en su archivo menuData.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. Discusión de la Comisión
22. Lea el valor del cuadro de texto del control DataGrid
foreach(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 (cantidad). Se requiere calcular automáticamente el monto al ingresar el. 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?
〖Pensando en regresar〗
<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:ColumnaPlantilla>
<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:ColumnaPlantilla>
<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)
devolver;
var q = txts[txts.length-3].valor;
var p = txts[txts.length-2].valor;
si (esNaN(q) || esNaN(p))
devolver;
q = parseInt(q);
p = analizarFloat(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
página.smartNavigation=verdadero
25. Al 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?
vacío privado DataGrid1_ItemDataBound (obj remitente, 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>";
público estático vacío ConfirmMessageBox (cadena PageTarget, cadena Contenido)
{
string ConfirmContent="var retvalue="/blog/window.confirm('"+Content+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
Confirmar contenido = inicio de secuencia de comandos + confirmar contenido + fin de secuencia de comandos;
Página de parámetrosPágina = (Página)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirmar",ConfirmarContenido);
//Respuesta.Write(strScript);