0. Verwenden Sie die Sitzung, um zu bestimmen, ob Sie sich anmelden möchten
, wenn (Session["login"] == null)
{
Response.Redirect("error.aspx");
}
1. Öffnen Sie ein neues Fenster und übergeben Sie Parameter:
Übertragungsparameter:
Response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
Empfangsparameter:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2. Fügen Sie der Schaltfläche ein Dialogfeld hinzu.
Button1.Attributes.Add("onclick","return activate('Confirm?')");
button.attributes.add("onclick","if(confirm('are you secure .. .?')){return true;}else{return false;}")
3. Löschen Sie den ausgewählten Datensatz in der Tabelle
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()
4. Warnung zum Löschen des Tabellendatensatzes
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
Fall ListItemType.Item:
Fall ListItemType.AlternatingItem :
Fall ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return activate('Sind Sie sicher, dass Sie diese Nachricht löschen möchten');");
brechen;
Standard:
brechen;
}
}
5. Klicken Sie auf die Tabellenzeile, um eine Verknüpfung zu einer anderen Seite herzustellen.
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Klicken Sie auf das Formular, um es zu öffnen
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 + "');");
}
Doppelklicken Sie auf die Tabelle, um eine Verbindung zu einer anderen Seite im itemDataBind-Ereignis herzustellen
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 + "'");
}
Doppelklicken Sie auf die Tabelle, um eine neue Seite zu öffnen
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 + "')");
}
★Besonderer Hinweis: [?id=] darf nicht [?id =] sein.
6. Übergeben Sie Parameter in Tabellen-Hyperlink-Spalten
<asp:HyperLinkColumn Target="_blank" headertext="ID-Nummer" DataTextField="id" NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "Data Field 1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "Data Field 2")%>' />
7. Klicken Sie auf die Tabelle, um die Farbe zu ändern
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';");
}
Geschrieben in _ItemDataBound von 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. Über
die Einstellung des Datumsformats
DataFormatString="{0:yyyy-MM-dd}"
Ich denke, es sollte im itembound-Ereignis enthalten sein
e.items.cell["Ihre Spalte"].text=DateTime.Parse(e.items.cell["Ihre Spalte"].text.ToString("JJJJ-MM-TT"))
9. Fehlerinformationen abrufen Nicht durchführen Verwenden Sie Response.Redirect zur angegebenen Seite, verwenden Sie jedoch Server.Transfer.
z.B.
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() ist HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//Es ist in Ordnung, den Rest der Nicht-HttpUnhandledException-Ausnahmen ASP.NET selbst zu überlassen :)
}
Durch die Umleitung wird ein Postback generiert und Fehlerinformationen gehen verloren. Daher sollte die Seitenführung direkt auf der Serverseite ausgeführt werden, damit die Fehlerinformationen auf der Fehlerbehandlungsseite abgerufen und entsprechend verarbeitet werden können.
10. Cookies löschen
Cookie.Expires=[DateTime];
Response.Cookies("Benutzername").Expires = 0
11. Benutzerdefinierte Ausnahmebehandlung
// Benutzerdefinierte Ausnahmebehandlungsklasse
Verwenden des Systems;
mit System.Diagnostics;
Namespace MyAppException
{
/// <Zusammenfassung>
/// Anwendungsausnahmebehandlungsklasse, geerbt von der Systemausnahmeklasse ApplicationException.
/// Ausnahmeinhalt automatisch im Anwendungsprotokoll von Windows NT/2000 aufzeichnen
/// </summary>
öffentliche Klasse AppException:System.ApplicationException
{
publicAppException()
{
if (ApplicationConfiguration.EventLogEnabled)
LogEvent("Ein unbekannter Fehler ist aufgetreten.");
}
public AppException(string message)
{
LogEvent(Nachricht);
}
public AppException(string message,Exception innerException)
{
LogEvent(Nachricht);
if (innerException != null)
{
LogEvent(innerException.Message);
}
}
//Protokollierungsklasse
Verwenden des Systems;
Verwenden von System.Configuration;
Verwenden von System.Diagnostics;
mit System.IO;
Verwenden von System.Text;
mit System.Threading;
Namespace MyEventLog
{
/// <Zusammenfassung>
/// Ereignisprotokollierungsklasse, die Unterstützung für die Ereignisprotokollierung bereitstellt
/// <Bemerkungen>
/// Definiert 4 Protokollierungsmethoden (Fehler, Warnung, Info, Trace)
/// </remarks>
/// </summary>
öffentliche Klasse ApplicationLog
{
/// <Zusammenfassung>
/// Fehlerinformationen im Win2000/NT-Ereignisprotokoll aufzeichnen
/// <param name="message">Aufzuzeichnende Textinformationen</param>
/// </summary>
public static void WriteError(String message)
{
WriteLog(TraceLevel.Error, message);
}
/// <Zusammenfassung>
/// Warninformationen im Win2000/NT-Ereignisprotokoll aufzeichnen
/// <param name="message">Aufzuzeichnende Textinformationen</param>
/// </summary>
public static void WriteWarning(String message)
{
WriteLog(TraceLevel.Warning, message);
}
/// <Zusammenfassung>
/// Zeichnen Sie die Eingabeaufforderungsinformationen im Win2000/NT-Ereignisprotokoll auf
/// <param name="message">Aufzuzeichnende Textinformationen</param>
/// </summary>
public static void WriteInfo(String message)
{
WriteLog(TraceLevel.Info, Nachricht);
}
/// <Zusammenfassung>
/// Protokollierungsinformationen im Win2000/NT-Ereignisprotokoll aufzeichnen
/// <param name="message">Aufzuzeichnende Textinformationen</param>
/// </summary>
public static void WriteTrace(String message)
{
WriteLog(TraceLevel.Verbose, message);
}
/// <Zusammenfassung>
/// Formatieren Sie das im Ereignisprotokoll aufgezeichnete Textinformationsformat
/// <param name="ex">Ausnahmeobjekt, das formatiert werden muss</param>
/// <param name="catchInfo">Titelzeichenfolge der Ausnahmeinformationen.</param>
/// <retvalue>
/// <para>Formatierte Ausnahmeinformationszeichenfolge, einschließlich Ausnahmeinhalt und Trace-Stack.</para>
/// </retvalue>
/// </summary>
öffentliche statische String FormatException (Ausnahme 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();
}
/// <Zusammenfassung>
/// Tatsächliche Methode zum Schreiben des Ereignisprotokolls
/// <param name="level">Die Ebene der aufzuzeichnenden Informationen (Fehler, Warnung, Info, Trace).</param>
/// <param name="messageText">Aufzuzeichnender Text.</param>
/// </summary>
private static void WriteLog(TraceLevel level, String messageText)
{
versuchen
{
EventLogEntryType LogEntryType;
Schalter (Niveau)
{
Fall TraceLevel.Error:
LogEntryType = EventLogEntryType.Error;
brechen;
Fall TraceLevel.Warning:
LogEntryType = EventLogEntryType.Warning;
brechen;
Fall TraceLevel.Info:
LogEntryType = EventLogEntryType.Information;
brechen;
Fall TraceLevel.Verbose:
LogEntryType = EventLogEntryType.SuccessAudit;
brechen;
Standard:
LogEntryType = EventLogEntryType.SuccessAudit;
brechen;
}
EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
//Ereignisprotokoll schreiben
eventLog.WriteEntry
(messageText, LogEntryType);
Catch {} //Alle Ausnahmen ignorieren
}
} //Klasse ApplicationLog
}
12. Das Panel scrollt horizontal und wird automatisch vertikal erweitert
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Konvertieren Sie Enter in Tab
<script language="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. DataGrid-Superverbindungsspalte
DataNavigateUrlField="Feldname" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID={0 }"
15.DataGrid-Zeilen ändern ihre Farbe mit der Maus
private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (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. Vorlagenspalte
<ASP:TEMPLATECOLUMN sichtbar="False" sortexpression="demo" headertext="ID">
<ITEMTEMPLATE>
<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="Center"></HEADERSTYLE>
<ITEMTEMPLATE>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOX id="chkExportON" runat="server" aktiviert="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
Backend code
protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
//Ändern Sie die Auswahl der Spalten, um alle oder keine auszuwählen.
CheckBox chkExport;
if(CheckAll.Checked)
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
}
anders
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
}
}
17. Zahlenformatierung [Das Ergebnis von <%#Container.DataItem("price")%> ist 500,0000, wie formatiere ich es auf 500,00?]
<%#Container.DataItem("price","{0:¥# , ##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
18. Datumsformatierung
[In ASPX-Seite: <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
Angezeigt als: 2004-8-11 19:44:28
Ich möchte nur: 2004-8-11]
<%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date", "{0:yyyy-Md}")%>
Wie soll ich es ändern?
[Datum formatieren]
Nehmen Sie es heraus, normalerweise Gegenstand
((DateTime)objectFromDB).ToString("yyyy-MM-dd");
[Validierungsausdruck für Datum]
A. Das folgende korrekte Eingabeformat: [29.02.2004], [29.02.2004 22:29:39 Uhr], [31.12.2004]
^((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. Das folgende korrekte Eingabeformat: [31.12.0001], [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])) $
[Fallkonvertierung]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. So legen Sie globale Variablen fest
im Application_Start()-Ereignis
in Global.asax
Application[attribute name] = xxx; hinzu,
was Ihre globale Variable ist.
20. Wie klicke ich auf die Verbindung, um nach der von HyperLinkColumn generierten Verbindung ein neues Fenster zu öffnen?
HyperLinkColumn hat ein Attribut Target, setzen Sie einfach den Wert auf „_blank“. (Target="_blank")
[ASPNETMENU] Klicken Sie auf den Menüpunkt, um ein neues Fenster zum Menüpunkt in Ihren menuData hinzuzufügen .xml-Datei.
wie:
<?xml version="1.0"kodierung="GB2312"?>
<MenuData ImagesBaseURL="images/">
<MenüGruppe>
<MenuItem Label="Interne Parameterinformationen" URL="Infomation.aspx" >
<MenuGroup ID="BBC">
<MenuItem Label="Announcement Information" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Informationsbesprechung vorbereiten" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
Am besten aktualisieren Sie Ihr aspnetmenu auf Version 1.2.
21. Delegieren Sie die Diskussion
http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191
http://dev.csdn.net/develop/article/22/22951.shtm
22. Lesen Sie den TextBox-Wert des DataGrid-Steuerelements
foreach (DataGrid dgi in yourDataGrid.Items).
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}
23. Es gibt drei Vorlagenspalten im DataGrid, die Textfelder enthalten: DG_ShuLiang (Menge), DG_DanJian (Stückpreis) und DG_JinE (Menge) in Spalte 5.6.7. Es ist erforderlich, den Betrag automatisch zu berechnen, wenn die Menge eingegeben wird und Stückpreis, das heißt: Menge * Stückpreis =Die Menge muss bei der Eingabe auch auf numerische Werte beschränkt werden. Wie kann ich ein Client-Skript verwenden, um diese Funktion zu implementieren
?
<asp:TemplateColumn HeaderText="Quantity">
<ItemTemplate>
<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="muss integer sein" ValidationExpression="^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Einheitspreis">
<ItemTemplate>
<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="muss numeric sein" ValidationExpression="^d+(.d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Amount">
<ItemTemplate>
<asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<script language="javascript">
functionDoCal()
{
var e = event.srcElement;
var row = e.parentNode.parentNode;
var txts = row.all.tags("INPUT");
if (!txts.length || txts.length < 3)
return;
var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value;
if (isNaN(q) || isNaN(p))
return;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>
24.Wenn die Zeilen am unteren Rand des Datenrasters zum Vergleich ausgewählt werden, warum wird es dann immer aktualisiert und dann nach oben gescrollt? Die gerade ausgewählten Zeilen sind aufgrund des Bildschirms nicht sichtbar.
page_load
page.smartNavigation=true
25. Ändern Sie die Daten in Datagrid. Wenn Sie auf die Bearbeitungstaste klicken, werden die Daten im Textfeld angezeigt.
void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Width", "80px")
}
}
26. Dialogfeld
privater statischer String ScriptBegin = "<script language="JavaScript">";
private static string ScriptEnd = "</script>";
public static void ConfirmMessageBox(string PageTarget,string Content)
{
string ConfirmContent="var retvalue="/blog/window.confirm('"+Content+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
//Response.Write(strScript);
}
http://www.cnblogs.com/robber/archive/2007/01/09/615835.html