0. Utilisez la session pour déterminer si vous devez vous connecter
si (Session["login"] == null)
{
Réponse.Redirect("erreur.aspx");
}
1. Ouvrez une nouvelle fenêtre et transmettez les paramètres :
Paramètres de transmission :
réponse.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
Paramètres de réception :
chaîne a = Request.QueryString("id");
chaîne b = Request.QueryString("id1");
2. Ajoutez une boîte de dialogue au bouton
Button1.Attributes.Add("onclick","return confirm('Confirm?')");
button.attributes.add("onclick","if(confirm('are you sure) .. .?')){return true;}else{return false;}")
3. Supprimez l'enregistrement sélectionné dans la table
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employeewhere emp_id = " + intEmpID.ToString()
4. Avertissement de suppression de l'enregistrement de la table
private void DataGrid_ItemCreated (expéditeur d'objet, DataGridItemEventArgs e)
{
commutateur (e.Item.ItemType)
{
cas ListItemType.Item :
cas ListItemType.AlternatingItem :
cas ListItemType.EditItem :
TableCell maTableCell ;
maTableCell = e.Item.Cells[14];
LinkButton monDeleteButton ;
monDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return confirm('Êtes-vous sûr de vouloir supprimer ce message');");
casser;
défaut:
casser;
}
}
5. Cliquez sur la ligne du tableau pour créer un lien vers une autre page
privée void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Cliquez sur le formulaire pour l'ouvrir
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 + "');");
}
Double-cliquez sur le tableau pour vous connecter à une autre page dans l'événement itemDataBind
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
chaîne OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
Double-cliquez sur le tableau pour ouvrir une nouvelle page
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
chaîne OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}
★Remarque spéciale : [?id=] ne peut pas être [?id =]
6. Transmettez les paramètres dans les colonnes de lien hypertexte du tableau
<asp:HyperLinkColumn Target="_blank" headertext="numéro d'identification" DataTextField="id" NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "Data Field 1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "Data Field 2")%>' />
7. Cliquez sur le tableau pour changer la couleur
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';");
}
Écrit dans _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. À propos
du paramètre de format de
date du format de date
DataFormatString="{0:aaaa-MM-jj}"
Je pense que cela devrait être dans l'événement lié à l'élément
e.items.cell["your column"].text=DateTime.Parse(e.items.cell["your column"].text.ToString("aaaa-MM-dd"))
9. Obtenir des informations sur l'erreur Ne pas utilisez Response.Redirect vers la page spécifiée, mais utilisez Server.Transfer.
par ex.
// dans global.asax
protected void Application_Error (expéditeur d'objet, EventArgs e) {
si (Server.GetLastError() est HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//Vous pouvez laisser le reste des exceptions non-HttpUnhandledException à ASP.NET lui-même :)
}
La redirection entraînera la génération d'un post-back et la perte des informations d'erreur. Les instructions de page doivent donc être exécutées directement côté serveur, afin que les informations d'erreur puissent être obtenues sur la page de gestion des erreurs et traitées en conséquence.
10.Effacer les cookies
Cookie.Expires=[DateTime];
Réponse.Cookies("NomUtilisateur").Expires = 0
11. Gestion des exceptions personnalisée
// Classe de gestion des exceptions personnalisée
utiliser le système ;
en utilisant System.Diagnostics ;
espace de noms MyAppException ;
{
/// <résumé>
/// Classe de gestion des exceptions d'application héritée de la classe d'exceptions système ApplicationException.
/// Enregistre automatiquement le contenu des exceptions dans le journal des applications de Windows NT/2000
/// </summary>
classe publique AppException : System.ApplicationException
{
publicAppException()
{
si (ApplicationConfiguration.EventLogEnabled)
LogEvent("Une erreur inconnue s'est produite.");
}
public AppException (message de chaîne)
{
LogEvent(message);
}
public AppException (message de chaîne, exception innerException)
{
LogEvent(message);
si (innerException ! = null)
{
LogEvent(innerException.Message);
}
}
//Classe de journalisation
utiliser le système ;
en utilisant System.Configuration ;
en utilisant System.Diagnostics ;
en utilisant System.IO ;
en utilisant System.Text ;
en utilisant System.Threading,
l'espace de noms MyEventLog ;
{
/// <résumé>
/// Classe de journalisation des événements, fournissant la prise en charge de la journalisation des événements
/// <remarques>
/// Définit 4 méthodes de journalisation (erreur, avertissement, info, trace)
/// </remarques>
/// </summary>
Classe publique ApplicationLog
{
/// <résumé>
/// Enregistrer les informations d'erreur dans le journal des événements Win2000/NT
/// <param name="message">Informations textuelles à enregistrer</param>
/// </summary>
public static void WriteError (message de chaîne)
{
WriteLog(TraceLevel.Error, message);
}
/// <résumé>
/// Enregistrer les informations d'avertissement dans le journal des événements Win2000/NT
/// <param name="message">Informations textuelles à enregistrer</param>
/// </summary>
public static void WriteWarning (message de chaîne)
{
WriteLog(TraceLevel.Warning, message);
}
/// <résumé>
/// Enregistrez les informations d'invite dans le journal des événements Win2000/NT
/// <param name="message">Informations textuelles à enregistrer</param>
/// </summary>
public static void WriteInfo (message de chaîne)
{
WriteLog(TraceLevel.Info, message);
}
/// <résumé>
/// Enregistrer les informations de traçage dans le journal des événements Win2000/NT
/// <param name="message">Informations textuelles à enregistrer</param>
/// </summary>
public static void WriteTrace (message de chaîne)
{
WriteLog(TraceLevel.Verbose, message);
}
/// <résumé>
/// Formater le format des informations textuelles enregistrées dans le journal des événements
/// <param name="ex">Objet d'exception qui doit être formaté</param>
/// <param name="catchInfo">Chaîne de titre des informations sur l'exception.</param>
/// <retvalue>
/// <para>Chaîne d'informations sur les exceptions formatée, y compris le contenu des exceptions et la pile de trace.</para>
/// </retvalue>
/// </summary>
public static String FormatException (Exception ex, String catchInfo)
{
StringBuilder strBuilder = new StringBuilder();
if (catchInfo != String.Empty)
{
strBuilder.Append(catchInfo).Append("rn");
}
strBuilder.Append(ex.Message).Append("rn").Append(ex.StackTrace);
return strBuilder.ToString();
}
/// <résumé>
/// Méthode d'écriture du journal des événements réels
/// <param name="level">Le niveau d'information à enregistrer (erreur, avertissement, info, trace).</param>
/// <param name="messageText">Texte à enregistrer.</param>
/// </summary>
vide statique privé WriteLog (niveau TraceLevel, chaîne messageText)
{
essayer
{
EventLogEntryType LogEntryType ;
interrupteur (niveau)
{
cas TraceLevel.Erreur :
LogEntryType = EventLogEntryType.Error ;
casser;
cas TraceLevel.Avertissement :
LogEntryType = EventLogEntryType.Warning ;
casser;
cas TraceLevel.Info :
LogEntryType = EventLogEntryType.Information ;
casser;
cas TraceLevel.Verbose :
LogEntryType = EventLogEntryType.SuccessAudit ;
casser;
défaut:
LogEntryType = EventLogEntryType.SuccessAudit ;
casser;
}
EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
// écriture du journal des événements
eventLog.WriteEntry
(messageText, LogEntryType);
catch {} //Ignorer toutes les exceptions
}
} //classeApplicationLog
}
12.Le panneau défile horizontalement et s'agrandit automatiquement verticalement
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Convertir Entrée en Tab
<script langage="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>
onkeydown="if(event.keyCode==13) event.keyCode=9"
http://dotnet.aspx.cc/exam/enter2tab.aspx
14. Colonne de super connexion DataGrid
DataNavigateUrlField="Nom du champ" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID={0 }"
15.Les lignes DataGrid changent de couleur avec la souris
private void DGzf_ItemDataBound (expéditeur d'objet, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
si (e.Item.ItemType!=ListItemType.Header)
{
e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=""+e.Item.Style["BACKGROUND-COLOR"]+""");
e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=""+ "#EFF3F7"+""");
}
}
16. Colonne Modèle
<ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
<MODÈLE D'ÉLÉMENT>
<ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext="check">
<HEADERSTYLE wrap="False" horizontalalign="Centre"></HEADERSTYLE>
<MODÈLE D'ÉLÉMENT>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<MODÈLED'ÉDITION>
<ASP:CHECKBOX id="chkExportON" runat="server" activé="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
Code backend
protégé void CheckAll_CheckedChanged (expéditeur de l'objet, System.EventArgs e)
{
//Modifiez la sélection des colonnes pour sélectionner tout ou rien.
CheckBox chkExport;
si (CheckAll.Checked)
{
foreach (DataGridItem oDataGridItem dans MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true ;
}
}
autre
{
foreach (DataGridItem oDataGridItem dans MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = faux ;
}
}
}
17. Formatage des nombres [Le résultat de <%#Container.DataItem("price")%> est 500,0000, comment le formater en 500,00 ?]
<%#Container.DataItem("price","{0:¥# , ##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
18. Formatage de la date
[Dans la page aspx : <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
Affiché comme : 2004-8-11 19:44:28
Je veux juste : 2004-8-11]
<%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date", "{0:yyyy-Md}")%>
Comment dois-je le modifier ?
[Formater la date]
Retirez-le, objectez généralement
((DateTime)objectFromDB).ToString("aaaa-MM-jj");
[Expression de validation pour la date]
A. Le format d'entrée correct suivant : [2004-2-29], [2004-02-29 22: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. Le format d'entrée correct suivant : [0001-12-31], [9999 09 30], [03/03/2002]
^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])) $
[Conversion de cas]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. Comment définir des variables globales
Dans l'événement Application_Start()
dans Global.asax
, ajoutez Application[attribute name] = xxx;
qui est votre variable globale
20. Comment cliquer sur la connexion pour ouvrir une nouvelle fenêtre après la connexion générée par HyperLinkColumn ?
HyperLinkColumn a un attribut Target, définissez simplement la valeur sur "_blank". (Target="_blank")
[ASPNETMENU] Cliquez sur l'élément de menu pour ouvrir une nouvelle fenêtre. Ajoutez URLTarget="_blank" à l'élément de menu dans votre menuData. Fichier .xml.
comme:
<?xml version="1.0" encoding="GB2312"?>
<MenuData ImagesBaseURL="images/">
<GroupeMenu>
<MenuItem Label="Informations sur les paramètres internes" URL="Infomation.aspx" >
<ID du groupe de menu="BBC">
<MenuItem Label="Informations sur l'annonce" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Préparer la réunion d'information" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
Il est préférable de mettre à niveau votre menu aspnet vers la version 1.2.
21. Discussion des délégués
http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191
http://dev.csdn.net/develop/article/22/22951.shtm
22. Lisez la valeur TextBox du contrôle DataGrid
pour chaque (DataGrid dgi dans yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
to.Texte....
}
23. Il y a trois colonnes de modèle dans le DataGrid qui contiennent des zones de texte : DG_ShuLiang (quantité), DG_DanJian (prix unitaire) et DG_JinE (montant) respectivement dans la colonne 5.6.7. Il est nécessaire de calculer automatiquement le montant lors de la saisie de la quantité. et le prix unitaire, c'est-à-dire : quantité * prix unitaire =Le montant doit également être limité aux valeurs numériques lors de la saisie. Comment puis-je utiliser le script client pour implémenter cette fonction
?
<asp:TemplateColumn HeaderText="Quantité">
<Modèle d'élément>
<asp:TextBox id="ShuLiang" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS" runat="server" ControlToValidate="ShuLiang" ErrorMessage="doit être un nombre entier" ValidationExpression="^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Prix unitaire">
<Modèle d'élément>
<asp:TextBox id="DanJian" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
onkeyup="javascript:DoCal()"
/>
<asp:RegularExpressionValidator id="revS2" runat="server" ControlToValidate="DanJian" ErrorMessage="doit être numérique" ValidationExpression="^d+(.d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Montant">
<Modèle d'élément>
<asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<langage de script="javascript">
fonctionDoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
si (!txts.length || txts.length < 3)
return ;
var q = txts[txts.length-3].value ;
var p = txts[txts.length-2].value;
si (isNaN(q) || isNaN(p))
retourner;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>
24.Lorsque les lignes en bas de la grille de données sont sélectionnées pour comparaison, pourquoi s'actualise-t-elle toujours puis défile-t-elle vers le haut ? Les lignes qui viennent d'être sélectionnées ne sont pas visibles à cause de l'écran ?
chargement_page
page.smartNavigation=true
25. Modifier les données dans Datagrid Lorsque vous cliquez sur la touche d'édition, les données apparaissent dans la zone de texte Comment contrôler la taille de la zone de texte
privée DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
pour(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Largeur", "80px")
}
}
26. Boîte de dialogue
chaîne statique privée ScriptBegin = "<script language="JavaScript">";
chaîne statique privée ScriptEnd = "</script>";
public static void ConfirmMessageBox (string PageTarget, string Content)
{
ConfirmContent
="var retvalue="/blog/window.confirm('"+Content+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
+ ConfirmContent + ScriptEnd
Paramètre de pagePage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Réponse.Write(strScript);
}
http://www.cnblogs.com/robber/archive/2007/01/09/615835.html