1. Open a new window and send parameters:
Send parameters:
response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"' )</script>")
Receive parameters:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2. Add a dialog box to the button
Button1.Attributes.Add("onclick","return confirm('Confirm?')");
button.attributes.add("onclick","if(confirm('are you sure...?')){return true;}else{return false;}")
3. Delete the selected record in the table
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = "DELETE from Employee where emp_id = " + intEmpID.ToString()
4. Delete table record warning
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
switch(e.Item.ItemType)
{
case ListItemType.Item :
case ListItemType.AlternatingItem :
case ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton;
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick","return confirm('Are you sure you want to delete this message');");
break;
default:
break;
}
}
5. Click the table row to link to another page
private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//Click the table to open 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-click the table to connect to another page
in the itemDataBind event
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 + "'");
}
Double-click the table to open a new page
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 + "')");
}
6. Pass parameters in the table hyperlink column
<asp:HyperLinkColumn Target="_blank" headertext="ID number" DataTextField="id" NavigateUrl="aaa.aspx?id='
<%# DataBinder.Eval(Container.DataItem, "Data Field 1")%>' & name='<%# DataBinder.Eval(Container.DataItem, "Data Field 2")%>' />
7. Click on the table to change the 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';");
}
Write in _ItemDataBound of 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. About date format
date format setting
DataFormatString="{0:yyyy-MM-dd}"
I think it should be in the itembound event
e.items.cell["your column"].text=DateTime.Parse(e.items.cell["your column"].text.ToString("yyyy-MM-dd" ))
9. To obtain the error information and go to the specified page,
do not use Response.Redirect, but use Server.Transfer
eg
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
//It's okay to leave the rest of the non-HttpUnhandledException exceptions to ASP.NET itself:)
}
Redirect will cause post-back to be generated and error information will be lost, so the page guidance should be executed directly on the server side, so that the error information can be obtained on the error handling page and processed accordingly.
10. Clear Cookie
Cookie.Expires=[DateTime] ;
Response.Cookies("UserName").Expires = 0
11. Custom exception handling
// Custom exception handling class
using System;
using System.Diagnostics;
namespace MyAppException
{
/// <summary>
/// Application exception handling class inherited from the system exception class ApplicationException.
/// Automatically record exception content to the application log of Windows NT/2000 /// </summary>
public class AppException:System.ApplicationException
{
publicAppException()
{
if (ApplicationConfiguration.EventLogEnabled)LogEvent("An unknown error occurred.");
}
public AppException(string message)
{
LogEvent(message);
}
public AppException(string message,Exception innerException)
{
LogEvent(message);
if (innerException != null)
{
LogEvent(innerException.Message);
}
}
//Logging class using System;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading;
namespace MyEventLog
{
/// <summary>
/// Event logging class, providing event logging support /// <remarks>
/// Defines 4 logging methods (error, warning, info, trace)
/// </remarks>
/// </summary>
public class ApplicationLog
{
/// <summary>
/// Record error information to the Win2000/NT event log /// <param name="message">Text information to be recorded</param>
/// </summary>
public static void WriteError(String message)
{
WriteLog(TraceLevel.Error, message);
}
/// <summary>
/// Record warning information to the Win2000/NT event log /// <param name="message">Text information to be recorded</param>
/// </summary>
public static void WriteWarning(String message)
{
WriteLog(TraceLevel.Warning, message);
}
/// <summary>
/// Record the prompt information into the Win2000/NT event log /// <param name="message">Text information to be recorded</param>
/// </summary>
public static void WriteInfo(String message)
{
WriteLog(TraceLevel.Info, message);
}
/// <summary>
/// Record tracking information into the Win2000/NT event log /// <param name="message">Text information to be recorded </param>
/// </summary>
public static void WriteTrace(String message)
{
WriteLog(TraceLevel.Verbose, message);
}
/// <summary>
/// Format the text information format recorded to the event log /// <param name="ex">Exception object that needs to be formatted</param>
/// <param name="catchInfo">Exception information title string.</param>
/// <retvalue>
/// Exception information string in <para> format, including exception content and trace stack.</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();
}
/// <summary>
/// Actual event log writing method /// <param name="level">The level of information to be recorded (error, warning, info, trace).</param>
/// <param name="messageText">Text to be recorded.</param>
/// </summary>
private static void WriteLog(TraceLevel level, String messageText)
{
try
{
EventLogEntryType LogEntryType;
switch (level)
{
case TraceLevel.Error:
LogEntryType = EventLogEntryType.Error;
break;
case TraceLevel.Warning:
LogEntryType = EventLogEntryType.Warning;
break;
case TraceLevel.Info:
LogEntryType = EventLogEntryType.Information;
break;
case TraceLevel.Verbose:
LogEntryType = EventLogEntryType.SuccessAudit;
break;
default:
LogEntryType = EventLogEntryType.SuccessAudit;
break;
}
EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
//Write event log eventLog.WriteEntry(messageText, LogEntryType);
}
catch {} //Ignore any exception}
} //class ApplicationLog
}
12.Panel scrolls horizontally and automatically expands vertically
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. Enter to convert to 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"
14.DataGrid super connection column
DataNavigateUrlField="Field name" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID ={0} "
15.DataGrid rows change color with the mouse
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. Template column
www.downcodes.com
<ASP:TEMPLATECOLUMN visible="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="selected">
<HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE>
<ITEMTEMPLATE>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
Code-behind
protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
//Change the selection of columns to select all or none.
CheckBox chkExport;
if(CheckAll.Checked)
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
}
else
{
foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
}
}
17. Number formatting
[The result of <%#Container.DataItem("price")%> is 500.0000, how to format it to 500.00?]
<%#Container.DataItem("price","{0:¥#,# #0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
18. Date formatting
[In the aspx page: <%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date")%>
is displayed as: 2004-8-11 19:44:28
I only want: 2004-8-11 ]
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-Md}")%>
How should it be changed?
[Format date]
Take it out, usually object((DateTime)objectFromDB).ToString("yyyy-MM-dd");
[Verification expression for date]
A. The following correct input format: [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. The following correct input format: [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]))$
[Case conversion]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. How to set the global variable
in
the Application_Start() event in
Global.asaxand add Application[attribute name] = xxx;
which is your global variable
. 20. How to click the connection after the connection generated by HyperLinkColumn to open a new window?
HyperLinkColumn has an attribute Target, just set the value to "_blank". (Target="_blank")
[ASPNETMENU] Click on the menu item to pop up a new window
. Add URLTarget="_blank" to the menu item in your menuData.xml file. , such as:
<?xml version="1.0" encoding="GB2312"?>
<MenuData ImagesBaseURL="images/">
<MenuGroup>
<MenuItem Label="Internal parameter information" URL="Infomation.aspx" >
<MenuGroup ID="BBC">
<MenuItem Label="Announcement Information" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
<MenuItem Label="Prepare information briefing" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
It is best to upgrade your aspnetmenu to version 1.2
21. Read the DataGrid control TextBox value
foreach(DataGrid dgi in yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
tb.Text....
}
23. There are three template columns in the DataGrid that contain Textboxes: DG_ShuLiang (quantity), DG_DanJian (unit price), and DG_JinE (amount). They are in column 5.6.7. It is required to automatically calculate the amount when entering the quantity and unit price, that is: quantity * unit price = The amount is also required to be limited to numerical values when entered. How can I use client script to implement this function?
〖Sigui〗
<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="must be integer" ValidationExpression="^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Unit price">
<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="must be numeric" 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. When datagrid selects and compares the rows at the bottom, why does it always refresh and then scroll to the top? The row just selected cannot be seen due to the screen.
page_load
page.smartNavigation=true
25. Modify data in Datagrid. When the edit key is clicked, the data appears in the text box. How to control the size of the text box?
private 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[i].Attributes.Add("Width", "80px")
}
}
26.Dialog
private static string ScriptBegin = "<script language="JavaScript">";
private static string ScriptEnd = "</script>";
public static void ConfirmMessageBox(string PageTarget,string Content)
{
string ConfirmContent="var retValue=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);
}
27. Format the time: string aa=DateTime.Now.ToString("yyyy year MM month dd day");
1.1 Get the current year, month, day, hour, minute and second
currentTime=System.DateTime.Now;
1.2 Get the current year
int year = DateTime.Now.Year;
1.3 Get the current month
int month = DateTime.Now.Month;
1.4 Get the current day
int day = DateTime.Now.Day;
1.5 Get the current time
int hour = DateTime.Now.Hour;
1.6 Get the current minute
int minute = DateTime.Now.Minute;
1.7 Get the current second
int seconds = DateTime.Now.Second;
1.8 Get the current millisecond
int millisecond = DateTime.Now.Millisecond;
28. Custom paging code:
first define variables:
public static int pageCount; //Total number of pages
public static int curPageIndex=1; //Next page of the current page:
if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex+=1;
}
bind(); // DataGrid1 data binding function previous page:
if(DataGrid1.CurrentPageIndex > 0)
{
DataGrid1.CurrentPageIndex += 1;
curPageIndex-=1;
}
bind(); // DataGrid1 data binding function jumps directly to the page:
int a=int.Parse(JumpPage.Value.Trim()); //JumpPage.Value.Trim() is the jump value
if(a< DataGrid1.PageCount)
{
this.DataGrid1.CurrentPageIndex=a;
}
bind();
29. DataGrid usage:
Add and delete confirmation:
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
foreach(DataGridItem di in this.DataGrid1.Items)
{
if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)
{
((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm('Confirm to delete this item?');");
}
}
}
Style alternation:
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Item )
{
e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#FFFFFF';";
e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ;
}
else if( itemType == ListItemType.AlternatingItem)
{
e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor='#a0d7c4';";
e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor='#d9ece1';cursor='hand';" ;
}
Add a number column:
DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //Execute the DataTable returned by sql
DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String"));
for(int i=0;i<dt.Rows.Count;i++)
{
dt.Rows[i]["number"]=(i+1).ToString();
}
DataGrid1.DataSource=dt;
DataGrid1.DataBind();
Add a CheckBox to DataGrid1 and add a full selection box to the page
private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)
{
foreach(DataGridItem thisitem in DataGrid1.Items)
{
((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked;
}
}
Delete all the data displayed in DataGrid1 on the current page
foreach(DataGridItem thisitem in DataGrid1.Items)
{
if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked)
{
string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString();
Del (strloginid); //Delete function}
}
30. When the files are in different directories, you need to obtain the database connection string (if the connection string is placed in Web.config, then initialize it in Global.asax)
add the following code in Application_Start:
Application["ConnStr"]=this.Context. Request.PhysicalApplicationPath+ConfigurationSettings.
AppSettings["ConnStr"].ToString();
31. Variable.ToString()
character type conversion into string
12345.ToString("n"); //Generate 12,345.00
12345.ToString("C"); //Generate ¥12,345.00
12345.ToString("e"); //Generate 1.234500e+004
12345.ToString("f4"); //Generate 12345.0000
12345.ToString("x"); //Generate 3039 (hexadecimal)
12345.ToString("p"); //Generate 1,234,500.00%
32. Variable .Substring (parameter 1, parameter 2);
intercept a part of the string, parameter 1 is the starting digit from the left, and parameter 2 is the number of digits to intercept. For example: string s1 = str.Substring(0,2);
33. Log in to other websites on your own website: (If your page is nested, because a page can only have one FORM, you can then be directed to another page and submit the login information)
<SCRIPT language="javascript">
<!--
function gook(pws)
{
frm.submit();
}
//-->
</SCRIPT> <body leftMargin="0" topMargin="0" onload="javascript:gook()" marginwidth="0" marginheight="0">
<form name="frm" action=" http://220.194.55.68:6080/login.php?retid=7259 " method="post">
<tr>
<td>
<input id="f_user" type="hidden" size="1" name="f_user" runat="server">
<input id="f_domain" type="hidden" size="1" name="f_domain" runat="server">
<input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server">
<INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng">
<INPUT id="tem" type="hidden" size="1" value="2" name="tem">
</td>
</tr>
</form>
The name of the text box must be the name on the web page you want to log in. If the source code does not work, you can use vsniffer to take a look.
The following is the code to obtain the login information entered by the user:
string name;
name=Request.QueryString["EmailName"];
try
{
int a=name.IndexOf("@",0,name.Length);
f_user.Value=name.Substring(0,a);
f_domain.Value=name.Substring(a+1,name.Length-(a+1));
f_pass.Value=Request.QueryString["Psw"];
}
catch
{
Script.Alert("Wrong email!");
Server.Transfer("index.aspx");
}