0. Gunakan sesi untuk menentukan apakah akan login
if(Sesi["login"] == null)
{
Respon.Redirect("error.aspx");
}
1. Buka jendela baru dan transfer parameter:
Parameter transmisi:
respon.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
Terima parameter:
string a = Permintaan.QueryString("id");
string b = Permintaan.QueryString("id1");
2. Tambahkan kotak dialog ke tombol
Button1.Attributes.Add("onclick","return konfirmasi('Konfirmasi?')");
button.attributes.add("onclick","if(confirm('apakah Anda yakin...?')){return true;}else{return false;}")
3. Hapus catatan yang dipilih dalam tabel
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "HAPUS dari Karyawan di mana emp_id = " + intEmpID.ToString()
4. Hapus peringatan catatan formulir
private void DataGrid_ItemCreated(Pengirim objek,DataGridItemEventArgs e)
{
beralih(e.Item.ItemType)
{
kasus ListItemType.Item :
kasus ListItemType.AlternatingItem :
kasus ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Sel[14];
LinkButton myDeleteButton;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return konfirmasi('Apakah Anda yakin ingin menghapus pesan ini');");
merusak;
bawaan:
merusak;
}
}
5. Klik baris tabel untuk menghubungkan ke halaman lain
private void grdCustomer_ItemDataBound(pengirim objek, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Klik formulir untuk membuka
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 + "');");
}
Klik dua kali tabel untuk menyambung ke halaman lain di acara itemDataBind
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Teks;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
Klik dua kali tabel untuk membuka halaman baru
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
string OrderItemID =e.item.cells[1].Teks;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}
★Catatan khusus: [?id=] tidak boleh [?id =]
6. Melewati parameter di kolom hyperlink tabel
<asp:HyperLinkColumn Target="_blank" headertext="Nomor ID" DataTextField="id" NavigateUrl="aaa.aspx?id='<%# DataBinder.Eval(Container.DataItem, "Bidang Data 1")%>' & nama='<%# DataBinder.Eval(Container.DataItem, "Bidang Data 2")%>' />
7. Klik pada tabel untuk mengubah warna
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';");
}
Ditulis dalam _ItemDataBound dari 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. Tentang format tanggal
Pengaturan format tanggal
DataFormatString="{0:yyyy-MM-dd}"
Saya pikir itu harusnya di acara itembound
e.items.cell["kolom Anda"].text=DateTime.Parse(e.items.cell["kolom Anda"].text.ToString("yyyy-MM-dd"))
9. Untuk mendapatkan informasi error dan menuju ke halaman yang ditentukan, jangan gunakan Response.Redirect, tetapi gunakan Server.Transfer.
misalnya
// di global.asax
protected void Application_Error(Pengirim objek, EventArgs e) {
jika (Server.GetLastError() adalah HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//Tidak apa-apa untuk menyerahkan pengecualian non-HttpUnhandledException lainnya ke ASP.NET itu sendiri :)
}
Redirect akan menyebabkan post-back dihasilkan dan informasi kesalahan akan hilang, sehingga panduan halaman harus dijalankan langsung di sisi server, sehingga informasi kesalahan dapat diperoleh di halaman penanganan kesalahan dan diproses sebagaimana mestinya.
10.Hapus Cookie
Cookie.Kedaluwarsa=[TanggalWaktu];
Response.Cookies("Nama Pengguna").Kedaluwarsa = 0
11. Penanganan pengecualian khusus
//Kelas penanganan pengecualian khusus
menggunakan Sistem;
menggunakan Sistem.Diagnostik;
ruang nama MyAppException
{
/// <ringkasan>
/// Kelas penanganan pengecualian aplikasi yang diwarisi dari kelas pengecualian sistem ApplicationException.
/// Secara otomatis merekam konten pengecualian ke log aplikasi Windows NT/2000
/// </ringkasan>
AppException kelas publik: Sistem.ApplicationException
{
Pengecualian Aplikasi Publik()
{
jika (ApplicationConfiguration.EventLogEnabled)
LogEvent("Terjadi kesalahan yang tidak diketahui.");
}
publicAppException(pesan string)
{
LogEvent(pesan);
}
AppException publik (pesan string, Pengecualian innerException)
{
LogEvent(pesan);
jika (innerException != null)
{
LogEvent(innerException.Pesan);
}
}
//Kelas pencatatan
menggunakan Sistem;
menggunakan Sistem.Konfigurasi;
menggunakan Sistem.Diagnostik;
menggunakan Sistem.IO;
menggunakan Sistem.Teks;
menggunakan Sistem.Threading;
ruang nama MyEventLog
{
/// <ringkasan>
/// Kelas pencatatan peristiwa, menyediakan dukungan pencatatan peristiwa
/// <keterangan>
/// Mendefinisikan 4 metode logging (kesalahan, peringatan, info, jejak)
/// </keterangan>
/// </ringkasan>
ApplicationLog kelas publik
{
/// <ringkasan>
/// Catat informasi kesalahan ke log peristiwa Win2000/NT
/// <param name="message">Informasi teks yang akan direkam</param>
/// </ringkasan>
public static void WriteError (Pesan string)
{
WriteLog(TraceLevel.Error, pesan);
}
/// <ringkasan>
/// Catat informasi peringatan ke log peristiwa Win2000/NT
/// <param name="message">Informasi teks yang akan direkam</param>
/// </ringkasan>
public static void WriteWarning (Pesan string)
{
WriteLog(TraceLevel.Peringatan, pesan);
}
/// <ringkasan>
/// Catat informasi prompt ke dalam log peristiwa Win2000/NT
/// <param name="message">Informasi teks yang akan direkam</param>
/// </ringkasan>
public static void WriteInfo (Pesan string)
{
WriteLog(TraceLevel.Info, pesan);
}
/// <ringkasan>
/// Rekam informasi penelusuran ke log peristiwa Win2000/NT
/// <param name="message">Informasi teks yang akan direkam</param>
/// </ringkasan>
public static void WriteTrace (Pesan string)
{
WriteLog(TraceLevel.Verbose, pesan);
}
/// <ringkasan>
/// Format format informasi teks yang direkam ke log peristiwa
/// <param name="ex">Objek pengecualian yang perlu diformat</param>
/// <param name="catchInfo">String judul informasi pengecualian.</param>
/// <nilai kembali>
/// <para>String informasi pengecualian yang diformat, termasuk konten pengecualian dan tumpukan jejak.</para>
/// </nilai kembali>
/// </ringkasan>
FormatException String statis publik (Pengecualian ex, String catchInfo)
{
StringBuilder strBuilder = StringBuilder baru();
if (catchInfo != String.Kosong)
{
strBuilder.Append(catchInfo).Append("rn");
}
strBuilder.Append(ex.Message).Append("rn").Append(ex.StackTrace);
kembalikan strBuilder.ToString();
}
/// <ringkasan>
/// Metode penulisan log peristiwa sebenarnya
/// <param name="level">Tingkat informasi yang akan dicatat (kesalahan, peringatan, info, jejak).</param>
/// <param name="messageText">Teks yang akan direkam.</param>
/// </ringkasan>
private static void WriteLog (Tingkat TraceLevel, String messageText)
{
mencoba
{
EventLogEntryType LogEntryType;
beralih (tingkat)
{
kasus TraceLevel.Error:
LogEntryType = EventLogEntryType.Error;
merusak;
case TraceLevel. Peringatan:
LogEntryType = EventLogEntryType.Peringatan;
merusak;
kasus TraceLevel.Info:
LogEntryType = EventLogEntryType.Informasi;
merusak;
kasus TraceLevel.Verbose:
LogEntryType = EventLogEntryType.SuccessAudit;
merusak;
bawaan:
LogEntryType = EventLogEntryType.SuccessAudit;
merusak;
}
EventLog eventLog = new EventLog("Aplikasi", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
//tulis log peristiwa
eventLog.WriteEntry(messageText, LogEntryType);
}
catch {} //Abaikan pengecualian apa pun
}
} //kelas ApplicationLog
}
12.Panel bergulir secara horizontal dan secara otomatis meluas secara vertikal
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Ubah Enter menjadi Tab
<skrip bahasa="javascript" for="document" event="onkeydown">
if(event.keyCode==13 && event.srcElement.type!='button' && event.srcElement.type!='kirim' && event.srcElement.type!='reset' && event.srcElement.type!=' '&& event.srcElement.type!='textarea');
acara.Kode Kunci=9;
</skrip>
onkeydown="if(event.keyCode==13) acara.keyCode=9"
14.Kolom koneksi superDataGrid
DataNavigateUrlField="Nama bidang" DataNavigateUrlFormatString="}"
15. Baris DataGrid berubah warna dengan mouse
private void DGzf_ItemDataBound(pengirim objek, 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. Kolom templat
<ASP:TEMPLATECOLUMN terlihat="False" sortexpression="demo" headertext="ID">
<TEMPLATE ITEM>
<ASP:LABEL text='<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>' runat="server" width="80%" id="lblColumn" />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext="periksa">
<HEADERSTYLE wrap="False" horizontalalign="Tengah"></HEADERSTYLE>
<TEMPLATE ITEM>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<TEMPLATE EDIT>
<ASP:CHECKBOX id="chkExportON" runat="server" diaktifkan="benar" />
</EDITITEMPLATE>
</ASP:TEMPLATECOLUMN>
kode di belakang
dilindungi kekosongan CheckAll_CheckedChanged (pengirim objek, System.EventArgs e)
{
//Ubah pilihan kolom untuk memilih semua atau tidak sama sekali.
Kotak Centang chkEkspor;
if(PeriksaSemua.Diperiksa)
{
foreach(DataGridItem oDataGridItem di MyDataGrid.Items)
{
chkExport = (Kotak Centang)oDataGridItem.FindControl("chkExport");
chkExport.Diperiksa = benar;
}
}
kalau tidak
{
foreach(DataGridItem oDataGridItem di MyDataGrid.Items)
{
chkExport = (Kotak Centang)oDataGridItem.FindControl("chkExport");
chkExport.Diperiksa = false;
}
}
}
17. Pemformatan angka [Hasil <%#Container.DataItem("price")%> adalah 500.0000, bagaimana formatnya menjadi 500.00?]
<%#Container.DataItem("harga","{0:¥#,##0.00}")%>
int saya=123456;
string s=i.ToString("###,###.00");
18.Pemformatan tanggal
[Di halaman aspx: <%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date")%>
Ditampilkan sebagai: 11-8-2004 19:44:28
Saya hanya ingin: 11-8-2004】
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-Md}")%>
Bagaimana cara mengubahnya?
[Format tanggal]
Keluarkan, biasanya keberatan
((DateTime)objectFromDB).ToString("yyyy-MM-dd");
[Ekspresi validasi untuk tanggal]
A. Format input yang benar berikut ini: [29-2-2004], [29-02-2004 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. Format input yang benar berikut ini: [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]))$
[Konversi kasus]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. Cara mengatur variabel global
Global.asax
Dalam acara Application_Start()
Tambahkan Aplikasi[nama properti] = xxx;
Ini adalah variabel global Anda
20. Bagaimana cara membuka jendela baru setelah mengklik koneksi yang dihasilkan oleh HyperLinkColumn?
HyperLinkColumn memiliki atribut Target, cukup atur nilainya menjadi "_blank".
[ASPNETMENU] Klik pada item menu untuk memunculkan jendela baru. Tambahkan URLTarget="_blank" ke item menu di file menuData.xml Anda.
menyukai:
<?xml versi="1.0" pengkodean="GB2312"?>
<MenuData ImagesBaseURL="gambar/">
<Grup Menu>
<MenuItem Label="Informasi parameter internal" URL="Infomation.aspx" >
<ID Grup Menu="BBC">
<MenuItem Label="Informasi Pengumuman" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Siapkan pengarahan informasi" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
Sebaiknya upgrade aspnetmenu Anda ke versi 1.2
21. Pembahasan Komisi
22. Baca nilai TextBox kontrol DataGrid
foreach(DataGrid dgi di DataGrid.Item Anda)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Teks....
}
23. Ada tiga kolom templat di DataGrid yang berisi Kotak Teks: DG_ShuLiang (kuantitas), DG_DanJian (harga satuan), dan DG_JinE (jumlah). Mereka diperlukan untuk menghitung jumlah secara otomatis saat memasukkan kuantitas dan harga satuan, yaitu: kuantitas * harga satuan = Jumlahnya juga harus dibatasi pada nilai numerik saat dimasukkan.
〖Berpikir untuk kembali〗
<asp:TemplateColumn HeaderText="Jumlah">
<Templat Barang>
<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="harus berupa bilangan bulat" ValidationExpression="^d+$" />
</Templat Barang>
</asp:Kolom Templat>
<asp:TemplateColumn HeaderText="Harga satuan">
<Templat Barang>
<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="harus berupa numerik" ValidationExpression="^d+(.d*)?$" />
</Templat Barang>
</asp:Kolom Templat>
<asp:TemplateColumn HeaderText="Jumlah">
<Templat Barang>
<asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</Templat Barang>
</asp:Kolom Templat>
<skrip bahasa="javascript">
fungsiDoCal()
{
var e = acara.srcElement;
var baris = e.parentNode.parentNode;
var txts = baris.semua.tag("INPUT");
if (!txts.length || txts.panjang < 3)
kembali;
var q = txts[txts.panjang-3].nilai;
var p = txts[txts.panjang-2].nilai;
jika (isNaN(q) || isNaN(p))
kembali;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</skrip>
24.Ketika baris di bagian bawah datagrid dipilih untuk perbandingan, mengapa selalu disegarkan lalu digulir ke atas? Baris yang baru saja dipilih tidak dapat dilihat karena layar.
halaman_muat
halaman.smartNavigation=true
25. Saat memodifikasi data di Datagrid, ketika tombol edit diklik, data muncul di kotak teks.
private void DataGrid1_ItemDataBound(pengirim objek,DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
if(e.Item.ItemType==ListItemType.EditType)
{
e.Item.Sel.Atribut.Tambahkan("Lebar", "80px")
}
}
26. Kotak dialog
string statis pribadi ScriptBegin = "<bahasa skrip="JavaScript">";
string statis pribadi ScriptEnd = "</script>";
public static void KonfirmasiMessageBox(string PageTarget,string Content)
{
string KonfirmasiContent="var retvalue="/blog/window.confirm('"+Konten+"');"+"if(retValue){window.location="'"+PageTarget+"';}";
KonfirmasiKonten=ScriptBegin + KonfirmasiKonten + ScriptEnd;
Parameter HalamanPage = (Halaman)System.Web.HttpContext.Current.Handler;
ParameterPage.RegisterStartupScript("konfirmasi",KonfirmasiKonten);
//Respon.Tulis(strScript);