0. استخدم الجلسة لتحديد ما إذا كنت تريد تسجيل الدخول
إذا (Session["login"] == null)
{
Response.Redirect("error.aspx");
}
1. افتح نافذة جديدة وقم بتمرير المعلمات:
معلمات الإرسال:
Response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')</script>")
تلقي المعلمات:
سلسلة أ = Request.QueryString("id");
سلسلة ب = Request.QueryString("id1");
2. أضف مربع حوار إلى الزر
(
"onclick"،"return Confirm('Confirm?')");
.. .?')){إرجاع صحيح؛}آخر{إرجاع خطأ؛}")
3. احذف السجل المحدد في الجدول
intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
stringحذفCmd = "حذف من الموظف حيث emp_id =" + intEmpID.ToString()
4. تحذير حذف سجل الجدول
DataGrid_ItemCreated باطلة خاصة (مرسل الكائن، DataGridItemEventArgs e)
{
التبديل (e.Item.ItemType)
{
حالة ListItemType.Item:
حالة ListItemType.AlternatingItem:
حالة ListItemType.EditItem:
TableCell myTableCell;
myTableCell = e.Item.Cells[14];
LinkButton myDeleteButton؛
myDeleteButton = (LinkButton)myTableCell.Controls[0];
myDeleteButton.Attributes.Add("onclick"،"return Confirm('هل أنت متأكد من رغبتك في حذف هذه الرسالة');");
استراحة؛
تقصير:
استراحة؛
}
}
5. انقر فوق صف الجدول للارتباط بصفحة أخرى
Private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// انقر فوق النموذج لفتحه
إذا (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 + "');");
}
انقر نقراً مزدوجاً فوق الجدول للاتصال بصفحة أخرى في الحدث itemDataBind
إذا (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
سلسلة OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "location.href='../ShippedGrid.aspx?id=" + OrderItemID + "'");
}
انقر نقراً مزدوجاً فوق الجدول لفتح صفحة جديدة
إذا (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
سلسلة OrderItemID =e.item.cells[1].Text;
...
e.item.Attributes.Add("ondblclick", "open('../ShippedGrid.aspx?id=" + OrderItemID + "')");
}
★ملاحظة خاصة: لا يمكن أن يكون [?id=] [?id =]
6. قم بتمرير المعلمات في أعمدة الارتباط التشعبي للجدول
<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. انقر على الجدول لتغيير اللون
إذا (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';");
}
مكتوب في _ItemDataBound من DataGrid
إذا (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. حول
إعداد تنسيق التاريخ
DataFormatString="{0:yyyy-MM-dd}"
أعتقد أنه يجب أن يكون في الحدث itembound
e.items.cell["your column"].text=DateTime.Parse(e.items.cell["your column"].text.ToString("yyyy-MM-dd"))
9. الحصول على معلومات الخطأ لا استخدم Response.Redirect إلى الصفحة المحددة، ولكن استخدم Server.Transfer.
على سبيل المثال
// في global.asax
خطأ محمي باطل Application_Error(Object sender, EventArgs e) {
إذا كان (Server.GetLastError() هو HttpUnhandledException)
Server.Transfer("MyErrorPage.aspx");
// لا بأس بترك بقية الاستثناءات غير HttpUnhandledException لـ ASP.NET نفسه :)
}
ستؤدي إعادة التوجيه إلى إنشاء إعادة النشر وفقدان معلومات الخطأ، لذلك يجب تنفيذ إرشادات الصفحة مباشرة على جانب الخادم، بحيث يمكن الحصول على معلومات الخطأ في صفحة معالجة الأخطاء ومعالجتها وفقًا لذلك.
10. مسح ملفات تعريف الارتباط
Cookie.Expires=[DateTime];
Response.Cookies("اسم المستخدم").انتهاء الصلاحية = 0
11. معالجة الاستثناءات المخصصة
// فئة معالجة الاستثناءات المخصصة
باستخدام النظام؛
باستخدام System.Diagnostics؛
مساحة الاسم MyAppException
{
/// <الملخص>
/// فئة معالجة استثناء التطبيق الموروثة من فئة استثناء النظام ApplicationException.
/// تسجيل محتوى الاستثناء تلقائيًا في سجل تطبيق Windows NT/2000
/// </الملخص>
فئة عامة AppException:System.ApplicationException
{
publicAppException()
{
إذا (ApplicationConfiguration.EventLogEnabled)
LogEvent("حدث خطأ غير معروف.");
}
AppException العام (رسالة سلسلة)
{
LogEvent(message);
}
AppException العامة (رسالة سلسلة، استثناء داخلي)
{
LogEvent(message);
إذا (innerException! = فارغ)
{
LogEvent(innerException.Message);
}
}
// فئة التسجيل
باستخدام النظام؛
باستخدام System.Configuration؛
باستخدام System.Diagnostics؛
باستخدام System.IO؛
باستخدام System.Text؛
باستخدام System.Threading؛
مساحة الاسم MyEventLog
{
/// <الملخص>
/// فئة تسجيل الأحداث، توفر دعم تسجيل الأحداث
/// <الملاحظات>
/// تحديد 4 طرق للتسجيل (خطأ، تحذير، معلومات، تتبع)
/// </ملاحظات>
/// </الملخص>
سجل تطبيق الفئة العامة
{
/// <الملخص>
/// سجل معلومات الخطأ في سجل أحداث Win2000/NT
/// <param name="message">المعلومات النصية المراد تسجيلها</param>
/// </الملخص>
خطأ الكتابة الفراغي العام (رسالة سلسلة)
{
WriteLog(TraceLevel.Error, message);
}
/// <الملخص>
/// سجل معلومات التحذير في سجل أحداث Win2000/NT
/// <param name="message">المعلومات النصية المراد تسجيلها</param>
/// </الملخص>
تحذير الكتابة باطل عام ثابت (رسالة سلسلة)
{
WriteLog(TraceLevel.Warning, message);
}
/// <الملخص>
/// سجل معلومات المطالبة في سجل أحداث Win2000/NT
/// <param name="message">المعلومات النصية المراد تسجيلها</param>
/// </الملخص>
WriteInfo الفراغ العام الثابت (رسالة سلسلة)
{
WriteLog(TraceLevel.Info, message);
}
/// <الملخص>
/// سجل معلومات التتبع في سجل أحداث Win2000/NT
/// <param name="message">المعلومات النصية المراد تسجيلها</param>
/// </الملخص>
WriteTrace الفراغ العام الثابت (رسالة السلسلة)
{
WriteLog(TraceLevel.Verbose, message);
}
/// <الملخص>
/// تنسيق تنسيق المعلومات النصية المسجلة في سجل الأحداث
/// <param name="ex">كائن الاستثناء الذي يحتاج إلى التنسيق</param>
/// <param name="catchInfo">سلسلة عنوان معلومات الاستثناء.</param>
/// <قيمة إعادة القيمة>
/// <para>سلسلة معلومات الاستثناء المنسقة، بما في ذلك محتوى الاستثناء ومكدس التتبع.</para>
/// </retvalue>
/// </الملخص>
String FormatException العامة الثابتة (استثناء على سبيل المثال، سلسلة CatchInfo)
{
StringBuilder strBuilder = new StringBuilder();
إذا (catchInfo != String.Empty)
{
strBuilder.Append(catchInfo).Append("rn");
}
strBuilder.Append(ex.Message).Append("rn").Append(ex.StackTrace);
إرجاع strBuilder.ToString();
}
/// <الملخص>
/// طريقة كتابة سجل الأحداث الفعلية
/// <param name="level">مستوى المعلومات المطلوب تسجيلها (خطأ، تحذير، معلومات، تتبع).</param>
/// <param name="messageText">النص المطلوب تسجيله.</param>
/// </الملخص>
سجل الكتابة الثابت الخاص (مستوى TraceLevel، نص رسالة السلسلة)
{
يحاول
{
EventLogEntryType LogEntryType;
التبديل (المستوى)
{
حالة TraceLevel.خطأ:
LogEntryType = EventLogEntryType.Error;
استراحة؛
حالة TraceLevel.تحذير:
LogEntryType = EventLogEntryType.Warning;
استراحة؛
حالة TraceLevel.Info:
LogEntryType = EventLogEntryType.Information;
استراحة؛
حالة TraceLevel.Verbose:
LogEntryType = EventLogEntryType.SuccessAudit;
استراحة؛
تقصير:
LogEntryType = EventLogEntryType.SuccessAudit;
استراحة؛
}
EventLog eventsLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
//اكتب سجل الأحداث
EventLog.WriteEntry(messageText, LogEntryType
}
);
قبض على {} // تجاهل أي استثناءات
}
} // سجل تطبيق الفئة
}
12. يتم تمرير اللوحة أفقيًا وتتوسع عموديًا تلقائيًا
<asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>
13. تحويل أدخل إلى علامة التبويب
<script language="javascript" for="document" events="onkeydown">
if(event.keyCode==13 && events.srcElement.type!='button' && events.srcElement.type!='submit' && events.srcElement.type!='reset' && events.srcElement.type!=' '&& events.srcElement.type!='textarea');
this.event.keyCode=9;
</script>
onkeydown="if(event.keyCode==13) events.keyCode=9"
http://dotnet.aspx.cc/exam/enter2tab.aspx
14. عمود الاتصال الفائق DataGrid
DataNavigateUrlField="اسم الحقل" DataNavigateUrlFormatString=" http://xx/inc/delete.aspx?ID={0 }"
15. صفوف DataGrid تغير لونها باستخدام الماوس
الفراغ الخاص DGzf_ItemDataBound (مرسل الكائن، System.Web.UI.WebControls.DataGridItemEventArgs e)
{
إذا (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. عمود القالب
<ASP:TEMPLATECOLUMN مرئي = "False"sortexpression = "demo" headertext = "ID">
<نموذج العنصر>
<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>
<نموذج العنصر>
<ASP:CHECKBOX id="chkExport" runat="server" />
</ITEMTEMPLATE>
<تعديل القالب>
<ASP:CHECKBOX id = "chkExportON" runat = "الخادم" ممكّن = "صحيح" />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
كود الواجهة الخلفية
محمي باطل CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
// قم بتغيير تحديد الأعمدة لتحديد الكل أو لا شيء.
CheckBox chkExport;
إذا (التحقق من الكل. تم التحقق)
{
foreach (DataGridItem oDataGridItem في MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = true;
}
}
آخر
{
foreach (DataGridItem oDataGridItem في MyDataGrid.Items)
{
chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
chkExport.Checked = false;
}
}
}
17. تنسيق الأرقام [نتيجة <%#Container.DataItem("price")%> هي 500.0000، كيفية تنسيقها إلى 500.00؟]
<%#Container.DataItem("price"،"{0:¥#" , ##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
18. تنسيق التاريخ
[في صفحة aspx: <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
معروض كـ: 11-8-2004 19:44:28
أريد فقط: 11-8-2004]
<%# DataBinder.Eval(Container.DataItem, "Company_Ureg_Date", "{0:yyyy-Md}")%>
كيف يجب أن أغيره؟
[تاريخ التنسيق]
أخرجه، عادة ما يعترض
((DateTime)objectFromDB).ToString("yyyy-MM-dd");
[تعبير التحقق من صحة التاريخ]
A. تنسيق الإدخال الصحيح التالي: [2004-2-29]، [2004-02-29 10:29:39 مساءً]، [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. تنسيق الإدخال الصحيح التالي: [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])) $
[تحويل الحالة]
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)
19. كيفية ضبط المتغيرات العامة
في حدث Application_Start()
في Global.asax
، أضف Application[attribute name] = xxx;
وهو المتغير العام الخاص بك
20. كيف تنقر على الاتصال لفتح نافذة جديدة بعد الاتصال الذي تم إنشاؤه بواسطة HyperLinkColumn؟
يحتوي HyperLinkColumn على سمة الهدف، فقط قم بتعيين القيمة على "_blank". (Target = "_blank")
[ASPNETMENU] انقر فوق عنصر القائمة لتظهر نافذة جديدة. أضف URLTarget = "_blank" إلى عنصر القائمة في بيانات القائمة ملف .xml.
يحب:
<?xml version="1.0" encoding="GB2312"?>
<MenuData ImagesBaseURL="images/">
<مجموعة القائمة>
<MenuItem Label="معلومات المعلمة الداخلية" URL="Infomation.aspx" >
<معرف مجموعة القائمة = "بي بي سي">
<MenuItem Label = "معلومات الإعلان" URL = "Infomation.aspx" URLTarget = "_blank" LeftIcon = "file.gif"/>
<MenuItem Label="إعداد ملخص المعلومات" URL="NewInfo.aspx" LeftIcon="file.gif" />
...
من الأفضل ترقية قائمة aspnetmenu إلى الإصدار 1.2
21. تفويض المناقشة
http://community.csdn.net/Expert/topic/2651/2651579.xml?temp=.7183191
http://dev.csdn.net/develop/article/22/22951.shtm
22. اقرأ قيمة TextBox للتحكم في DataGrid
foreach(DataGrid dgi in yourDataGrid.Items)
{
TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
السل.نص....
}
23. توجد ثلاثة أعمدة قالب في DataGrid تحتوي على مربعات نص: DG_ShuLiang (الكمية)، وDG_DanJian (سعر الوحدة)، وDG_JinE (المبلغ) على التوالي في العمود 5.6.7، وهو مطلوب لحساب المبلغ تلقائيًا عند إدخال الكمية وسعر الوحدة، أي: الكمية * سعر الوحدة = مطلوب أيضًا أن يقتصر المبلغ على القيم الرقمية عند الإدخال. كيف يمكنني استخدام البرنامج النصي للعميل لتنفيذ هذه الوظيفة
؟
<asp:TemplateColumn HeaderText="الكمية">
<قالب العنصر>
<asp:TextBox id="ShuLiang" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'
onkeyup = "جافا سكريبت: DoCal ()"
/>
<asp:RegularExpressionValidator id = "revS" runat = "الخادم" ControlToValidate = "ShuLiang" ErrorMessage = "يجب أن يكون عددًا صحيحًا" ValidationExpression = "^d+$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="سعر الوحدة">
<قالب العنصر>
<asp:TextBox id="DanJian" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>'
onkeyup = "جافا سكريبت: DoCal ()"
/>
<asp:RegularExpressionValidator id = "revS2" runat = "server" ControlToValidate = "DanJian" ErrorMessage = "يجب أن يكون رقميًا" ValidationExpression = "^d+(.d*)?$" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Amount">
<قالب العنصر>
<asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
</ItemTemplate>
</asp:TemplateColumn>
<لغة البرمجة = "جافا سكريبت">
دالة دوكال ()
{
var e = events.srcElement;
varrow = e.parentNode.parentNode;
var txts =row.all.tags("INPUT");
إذا (!txts.length || txts.length < 3)
return;
var q = txts[txts.length-3].value;
var p = txts[txts.length-2].value
;
return;
q = parseInt(q);
p = parseFloat(p);
txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>
24. عندما يتم تحديد الصفوف الموجودة أسفل شبكة البيانات للمقارنة، لماذا يتم تحديثها دائمًا ثم التمرير إلى الأعلى؟ لا يمكن رؤية الصفوف المحددة للتو بسبب الشاشة.
page_load
page.smartNavigation=true
25. تعديل البيانات في Datagrid عند النقر على مفتاح التحرير، تظهر البيانات في مربع النص. كيفية التحكم في حجم مربع النص؟
DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
إذا (e.Item.ItemType==ListItemType.EditType)
{
e.Item.Cells.Attributes.Add("Width", "80px")
}
}
26. مربع الحوار
سلسلة ثابتة خاصة ScriptBegin = "<script language="JavaScript">";
سلسلة ثابتة خاصة ScriptEnd = "</script>"
;
{
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