搜索
熱搜: 活動 交友 discuz
查看: 7343|回復: 0
打印 上一主題 下一主題

[教學] ASP.NET的常用語法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-8-14 05:01:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. 1. 打開新的窗口並傳送參數:
  2. 傳送參數:
  3. response.write("<script>window.open(′*.aspx?id="+this.dropDownList1.SelectIndex+"&id1="+...+"′)</script>")

  4. 接收參數:
  5. string a = Request.QueryString("id");
  6. string b = Request.QueryString("id1");


  7. 2.為按鈕添加對話框


  8. 傳送參數:
  9. response.write("<script>window.open(′*.aspx?id="+this.dropDownList1.SelectIndex+"&id1="+...+"′)</script>")

  10. 接收參數:
  11. string a = Request.QueryString("id");
  12. string b = Request.QueryString("id1");


  13. 2.為按鈕添加對話框

  14. Button1.Attributes.Add("onclick","return confirm(′確認?′)");

  15. button.attributes.add("onclick","if(confirm(′are you sure...?′)){return true;}else{return false;}")


  16. 3.刪除表格選定記錄

  17. int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
  18. string deleteCmd = "delete from Employee where emp_id = " + intEmpID.ToString()

  19. 4.刪除表格記錄警告
  20. private void DataGrid_ItemCreated(object sender,DataGridItemEventArgs e)
  21. {
  22. switch(e.Item.ItemType)
  23. {
  24. case ListItemType.Item :
  25. case ListItemType.AlternatingItem :
  26. case ListItemType.EditItem:
  27. TableCell myTableCell;
  28. myTableCell = e.Item.Cells[14];
  29. LinkButton mydeleteButton ;
  30. mydeleteButton = (LinkButton)myTableCell.Controls[0];
  31. mydeleteButton.Attributes.Add("onclick","return confirm(′您是否確定要刪除這條信息′);");
  32. break;
  33. default:
  34. break;
  35. }

  36. }


  37. 5.點擊表格行鏈接另一頁

  38. private void grdCustomer_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  39. {
  40. //點擊表格打開
  41. if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  42. e.Item.Attributes.Add("onclick","window.open(′Default.aspx?id=" + e.Item.Cells[0].Text + "′);");
  43. }


  44. 雙擊表格連接到另一頁
  45. 在itemDataBind事件中
  46. if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  47. {
  48. string OrderItemID =e.item.cells[1].Text;
  49. ...
  50. e.item.Attributes.Add("ondblclick", "location.href=′../ShippedGrid.aspx?id=" + OrderItemID + "′");
  51. }
  52. 雙擊表格打開新一頁
  53. if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  54. {
  55. string OrderItemID =e.item.cells[1].Text;
  56. ...
  57. e.item.Attributes.Add("ondblclick", "open(′../ShippedGrid.aspx?id=" + OrderItemID + "′)");
  58. }
  59. ★特別注意:【?id=】 處不能為 【?id =】

  60. 6.表格超連接列傳遞參數
  61. <asp:HyperLinkColumn Target="_blank" headertext="ID號" DataTextField="id" NavigateUrl="aaa.aspx?id=′<%# DataBinder.Eval(Container.DataItem, "數據字段1")%>′ & name=′<%# DataBinder.Eval(Container.DataItem, "數據字段2")%>′ />


  62. 7.表格點擊改變顏色
  63. if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
  64. {
  65. e.Item.Attributes.Add("onclick","this.style.backgroundColor=′#99cc00′;this.style.color=′buttontext′;this.style.cursor=′default′;");
  66. }


  67. 寫在DataGrid的_ItemDataBound裡
  68. if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType == ListItemType.AlternatingItem)
  69. {
  70. e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=′#99cc00′;this.style.color=′buttontext′;this.style.cursor=′default′;");
  71. e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=′′;this.style.color=′′;");
  72. }

  73. 8.關於日期格式

  74. 日期格式設定
  75. DataFormatString="{0:yyyy-MM-dd}"

  76. 我覺得應該在itembound事件中
  77. e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString("yyyy-MM-dd"))

  78. 9.獲取錯誤信息並到指定頁面
  79. 不要使用Response.Redirect,而應該使用Server.Transfer
  80. e.g
  81. // in global.asax
  82. protected void Application_Error(object sender, EventArgs e) {
  83. if (Server.GetLastError() is HttpUnhandledException)
  84. Server.Transfer("MyErrorPage.aspx");

  85. //其餘的非HttpUnhandledException異常交給ASP.NET自己處理就okay了 :)
  86. }

  87. Redirect會導致post-back的產生從而丟失了錯誤信息,所以頁面導向應該直接在服務器端執行,這樣就可以在錯誤處理頁面得到出錯信息並進行相應的處理


  88. 10.清空cookie
  89. cookie.Expires=[DateTime];
  90. Response.cookies("UserName").Expires = 0


  91. 11.自定義異常處理

  92. //自定義異常處理類
  93. using System;
  94. using System.Diagnostics;

  95. namespace MyAppException
  96. {
  97. /// <summary>
  98. /// 從系統異常類ApplicationException繼承的應用程序異常處理類。
  99. /// 自動將異常內容記錄到Windows NT/2000的應用程序日誌
  100. /// </summary>
  101. public class AppException:System.ApplicationException
  102. {
  103. public AppException()
  104. {
  105. if (ApplicationConfiguration.EventLogEnabled)
  106. LogEvent("出現一個未知錯誤。");
  107. }

  108. public AppException(string message)
  109. {
  110. LogEvent(message);
  111. }

  112. public AppException(string message,Exception innerException)
  113. {
  114. LogEvent(message);
  115. if (innerException != null)
  116. {
  117. LogEvent(innerException.Message);
  118. }
  119. }

  120. //日誌記錄類
  121. using System;
  122. using System.Configuration;
  123. using System.Diagnostics;
  124. using System.IO;
  125. using System.Text;
  126. using System.Threading;

  127. namespace MyEventLog
  128. {
  129. /// <summary>
  130. /// 事件日誌記錄類,提供事件日誌記錄支持
  131. /// <remarks>
  132. /// 定義了4個日誌記錄方法 (error, warning, info, trace)
  133. /// </remarks>
  134. /// </summary>
  135. public class ApplicationLog
  136. {
  137. /// <summary>
  138. /// 將錯誤信息記錄到Win2000/NT事件日誌中
  139. /// <param name="message">需要記錄的文本信息</param>
  140. /// </summary>
  141. public static void WriteError(String message)
  142. {

  143. WriteLog(TraceLevel.Error, message);
  144. }

  145. /// <summary>
  146. /// 將警告信息記錄到Win2000/NT事件日誌中
  147. /// <param name="message">需要記錄的文本信息</param>
  148. /// </summary>
  149. public static void WriteWarning(String message)
  150. {

  151. WriteLog(TraceLevel.Warning, message);
  152. }

  153. /// <summary>
  154. /// 將提示信息記錄到Win2000/NT事件日誌中
  155. /// <param name="message">需要記錄的文本信息</param>
  156. /// </summary>
  157. public static void WriteInfo(String message)
  158. {
  159. WriteLog(TraceLevel.Info, message);
  160. }
  161. /// <summary>
  162. /// 將跟蹤信息記錄到Win2000/NT事件日誌中
  163. /// <param name="message">需要記錄的文本信息</param>
  164. /// </summary>
  165. public static void WriteTrace(String message)
  166. {

  167. WriteLog(TraceLevel.Verbose, message);
  168. }

  169. /// <summary>
  170. /// 格式化記錄到事件日誌的文本信息格式
  171. /// <param name="ex">需要格式化的異常對像</param>
  172. /// <param name="catchInfo">異常信息標題字符串.</param>
  173. /// <retvalue>
  174. /// <para>格式後的異常信息字符串,包括異常內容和跟蹤堆棧.</para>
  175. /// </retvalue>
  176. /// </summary>
  177. public static String FormatException(Exception ex, String catchInfo)
  178. {
  179. StringBuilder strBuilder = new StringBuilder();
  180. if (catchInfo != String.Empty)
  181. {
  182. strBuilder.Append(catchInfo).Append("\r\n");
  183. }
  184. strBuilder.Append(ex.Message).Append("\r\n").Append(ex.StackTrace);
  185. return strBuilder.ToString();
  186. }

  187. /// <summary>
  188. /// 實際事件日誌寫入方法
  189. /// <param name="level">要記錄信息的級別(error,warning,info,trace).</param>
  190. /// <param name="messageText">要記錄的文本.</param>
  191. /// </summary>
  192. private static void WriteLog(TraceLevel level, String messageText)
  193. {

  194. try
  195. {
  196. EventLogEntryType LogEntryType;
  197. switch (level)
  198. {
  199. case TraceLevel.Error:
  200. LogEntryType = EventLogEntryType.Error;
  201. break;
  202. case TraceLevel.Warning:
  203. LogEntryType = EventLogEntryType.Warning;
  204. break;
  205. case TraceLevel.Inf
  206. LogEntryType = EventLogEntryType.Information;
  207. break;
  208. case TraceLevel.Verbose:
  209. LogEntryType = EventLogEntryType.SuccessAudit;
  210. break;
  211. default:
  212. LogEntryType = EventLogEntryType.SuccessAudit;
  213. break;
  214. }

  215. EventLog eventLog = new EventLog("Application", ApplicationConfiguration.EventLogMachineName, ApplicationConfiguration.EventLogSourceName );
  216. //寫入事件日誌
  217. eventLog.WriteEntry(messageText, LogEntryType);

  218. }
  219. catch {} //忽略任何異常
  220. }
  221. } //class ApplicationLog
  222. }


  223. 12.Panel 橫向滾動,縱向自動擴展
  224. <asp:panel style="overflow-x:scroll;overflow-y:auto;"></asp:panel>


  225. 13.回車轉換成Tab
  226. <script language="javascript" for="document" event="onkeydown">
  227. if(event.keyCode==13 && event.srcElement.type!=′button′ && event.srcElement.type!=′submit′ && event.srcElement.type!=′reset′ && event.srcElement.type!=′′&& event.srcElement.type!=′textarea′);
  228. event.keyCode=9;
  229. </script>

  230. onkeydown="if(event.keyCode==13) event.keyCode=9"

  231. [url]http://dotnet.aspx.cc/exam/enter2tab.aspx[/url]


  232. 14.DataGrid超級連接列
  233. DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}"


  234. 15.DataGrid行隨鼠標變色
  235. private void DGzf_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  236. {
  237. if (e.Item.ItemType!=ListItemType.Header)
  238. {
  239. e.Item.Attributes.Add( "onmouseout","this.style.backgroundColor=\""+e.Item.Style["BACKGROUND-COLOR"]+"\"");
  240. e.Item.Attributes.Add( "onmouseover","this.style.backgroundColor=\""+ "#EFF3F7"+"\"");
  241. }

  242. }


  243. 16.模板列
  244. <ASP:TEMPLATECOLUMN visible="False" sortexpression="demo" headertext="ID">
  245. <ITEMTEMPLATE>
  246. <ASP:LABEL text=′<%# DataBinder.Eval(Container.DataItem, "ArticleID")%>′ runat="server" width="80%" id="lblColumn" />
  247. </ITEMTEMPLATE>
  248. </ASP:TEMPLATECOLUMN>


  249. <ASP:TEMPLATECOLUMN headertext="選中">
  250. <HEADERSTYLE wrap="False" horizontalalign="Center"></HEADERSTYLE>
  251. <ITEMTEMPLATE>
  252. <ASP:CHECKBOX id="chkExport" runat="server" />
  253. </ITEMTEMPLATE>
  254. <EDITITEMTEMPLATE>
  255. <ASP:CHECKBOX id="chkExportON" runat="server" enabled="true" />
  256. </EDITITEMTEMPLATE>
  257. </ASP:TEMPLATECOLUMN>

  258. 後台代碼

  259. protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
  260. {
  261. //改變列的選定,實現全選或全不選。
  262. CheckBox chkExport ;
  263. if( CheckAll.Checked)
  264. {
  265. foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
  266. {
  267. chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
  268. chkExport.Checked = true;
  269. }
  270. }
  271. else
  272. {
  273. foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
  274. {
  275. chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
  276. chkExport.Checked = false;
  277. }
  278. }
  279. }

  280. 17.數字格式化
  281. 【<%#Container.DataItem("price")%>的結果是500.0000,怎樣格式化為500.00?】

  282. <%#Container.DataItem("price","{0:¥#,##0.00}")%>

  283. int i=123456;
  284. string s=i.ToString("###,###.00");

  285. 18.日期格式化

  286. 【aspx頁面內:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
  287. 顯示為: 2004-8-11 19:44:28
  288. 我只想要:2004-8-11 】

  289. <%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>

  290. 應該如何改?


  291. 【格式化日期】
  292. 取出來,一般是object
  293. ((DateTime)objectFromDB).ToString("yyyy-MM-dd");


  294. 【日期的驗證表達式】
  295. A.以下正確的輸入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]

  296. ^((\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})))?$

  297. B.以下正確的輸入格式:[0001-12-31], [9999 09 30], [2002/03/03]

  298. ^\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]))$


  299. 【大小寫轉換】

  300. HttpUtility.HtmlEncode(string);
  301. HttpUtility.HtmlDecode(string)

  302. 19.如何設定全局變量
  303. Global.asax中

  304. Application_Start()事件中

  305. 添加Application[屬性名] = xxx;

  306. 就是你的全局變量

  307. 20.怎樣作到HyperLinkColumn生成的連接後,點擊連接,打開新窗口?

  308. HyperLinkColumn有個屬性Target,將器值設置成"_blank"即可.(Target="_blank")

  309. 【ASPNETMENU】點擊菜單項彈出新窗口
  310. 在你的menuData.xml文件的菜單項中加入URLTarget="_blank"
  311. 如:
  312. <?xml version="1.0" encoding="GB2312"?>
  313. <MenuData ImagesBaseURL="images/">
  314. <MenuGroup>
  315. <MenuItem Label="內參信息" URL="Infomation.aspx" >
  316. <MenuGroup ID="BBC">
  317. <MenuItem Label="公告信息" URL="Infomation.aspx" URLTarget="_blank" LeftIcon="file.gif"/>
  318. <MenuItem Label="編製信息簡報" URL="NewInfo.aspx" LeftIcon="file.gif" />
  319. ......
  320. 最好將你的aspnetmenu升級到1.2版

  321. 21.委託討論
  322. [url]http://community.csdn.net/Expert[/url] ... 9.xml?temp=.7183191
  323. [url]http://dev.csdn.net/develop/article/22/22951.shtm[/url]

  324. 22.讀取DataGrid控件TextBox值

  325. foreach(DataGrid dgi in yourDataGrid.Items)
  326. {
  327. TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
  328. tb.Text....
  329. }

  330. 23.在DataGrid中有3個模板列包含Textbox分別為 DG_ShuLiang (數量) DG_DanJian(單價) DG_JinE(金額)分別在5.6.7列,要求在錄入數量及單價的時候自動算出金額即:數量*單價=金額還要求錄入時限制為 數值型.我如何用客戶端腳本實現這個功能?

  331. 【思歸】
  332. <asp:TemplateColumn HeaderText="數量">
  333. <ItemTemplate>
  334. <asp:TextBox id="ShuLiang" runat=′server′ Text=′<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>′
  335. onkeyup="javascript:DoCal()"
  336. />

  337. <asp:RegularExpressionValidator id="revS" runat="server" ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^\d+$" />
  338. </ItemTemplate>
  339. </asp:TemplateColumn>

  340. <asp:TemplateColumn HeaderText="單價">
  341. <ItemTemplate>
  342. <asp:TextBox id="DanJian" runat=′server′ Text=′<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>′
  343. onkeyup="javascript:DoCal()"
  344. />

  345. <asp:RegularExpressionValidator id="revS2" runat="server" ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^\d+(\.\d*)?$" />

  346. </ItemTemplate>
  347. </asp:TemplateColumn>

  348. <asp:TemplateColumn HeaderText="金額">
  349. <ItemTemplate>
  350. <asp:TextBox id="JinE" runat=′server′ Text=′<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>′ />
  351. </ItemTemplate>
  352. </asp:TemplateColumn>

  353. <script language="javascript">
  354. function DoCal()
  355. {
  356. var e = event.srcElement;
  357. var row = e.parentNode.parentNode;
  358. var txts = row.all.tags("INPUT");
  359. if (!txts.length || txts.length < 3)
  360. return;

  361. var q = txts[txts.length-3].value;
  362. var p = txts[txts.length-2].value;

  363. if (isNaN(q) || isNaN(p))
  364. return;

  365. q = parseInt(q);
  366. p = parseFloat(p);

  367. txts[txts.length-1].value = (q * p).toFixed(2);
  368. }
  369. </script>


  370. 24.datagrid選定比較底下的行時,為什麼總是刷新一下,然後就滾動到了最上面,剛才選定的行因屏幕的關係就看不到了
  371. page_load
  372. page.smartNavigation=true

  373. 25.在Datagrid中修改數據,當點擊編輯鍵時,數據出現在文本框中,怎麼控制文本框的大小 ?

  374. private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
  375. {
  376. for(int i=0;i<e.Item.Cells.Count-1;i++)
  377. if(e.Item.ItemType==ListItemType.EditType)
  378. {
  379. e.Item.Cells.Attributes.Add("Width", "80px")

  380. }
  381. }


  382. 26.對話框
  383. private static string ScriptBegin = "<script language=\"JavaScript\">";
  384. private static string ScriptEnd = "</script>";

  385. public static void ConfirmMessageBox(string PageTarget,string Content)
  386. {

  387. string ConfirmContent="var retValue=window.confirm(′"+Content+"′);"+"if(retValue){window.location=′"+PageTarget+"′;}";

  388. ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;

  389. Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
  390. ParameterPage.RegisterStartupScript("confirm",ConfirmContent);
  391. //Response.Write(strScript);

  392. }

  393. ----------------------------------------

  394. 27. 將時間格式化:string aa=DateTime.Now.ToString("yyyy年MM月dd日");

  395. 1.1 取當前年月日時分秒
  396. currentTime=System.DateTime.Now;

  397. 1.2 取當前年
  398. int 年= DateTime.Now.Year;

  399. 1.3 取當前月
  400. int 月= DateTime.Now.Month;

  401. 1.4 取當前日
  402. int 日= DateTime.Now.Day;

  403. 1.5 取當前時
  404. int 時= DateTime.Now.Hour;

  405. 1.6 取當前分
  406. int 分= DateTime.Now.Minute;

  407. 1.7 取當前秒
  408. int 秒= DateTime.Now.Second;

  409. 1.8 取當前毫秒
  410. int 毫秒= DateTime.Now.Millisecond;

  411. 28.自定義分頁代碼:

  412. 先定義變量 :public static int pageCount; //總頁面數

  413. public static int curPageIndex=1; //當前頁面

  414. 下一頁:

  415. if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount - 1))

  416. {

  417. DataGrid1.CurrentPageIndex += 1;

  418. curPageIndex+=1;

  419. }

  420. bind(); // DataGrid1數據綁定函數

  421. 上一頁:

  422. if(DataGrid1.CurrentPageIndex >0)

  423. {

  424. DataGrid1.CurrentPageIndex += 1;

  425. curPageIndex-=1;

  426. }

  427. bind(); // DataGrid1數據綁定函數

  428. 直接頁面跳轉:

  429. int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()為跳轉值

  430. if(a<DataGrid1.PageCount)

  431. {

  432. this.DataGrid1.CurrentPageIndex=a;

  433. }

  434. bind();

  435. 29.DataGrid使用:

  436. 3.1添加刪除確認:

  437. private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)

  438. {

  439. foreach(DataGridItem di in this.DataGrid1.Items)

  440. {

  441. if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)

  442. {

  443. ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add("onclick","return confirm(′確認刪除此項嗎?′);");

  444. }

  445. }

  446. }

  447. 3.2樣式交替:

  448. ListItemType itemType = e.Item.ItemType;

  449. if (itemType == ListItemType.Item )

  450. {

  451. e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=′#FFFFFF′;";

  452. e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=′#d9ece1′;cursor=′hand′;" ;

  453. }

  454. else if( itemType == ListItemType.AlternatingItem)

  455. {

  456. e.Item.Attributes["onmouseout"] = "javascript:this.style.backgroundColor=′#a0d7c4′;";

  457. e.Item.Attributes["onmouseover"] = "javascript:this.style.backgroundColor=′#d9ece1′;cursor=′hand′;" ;

  458. }

  459. 3.3添加一個編號列:

  460. DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //執行sql返回的DataTable

  461. DataColumn dc=dt.Columns.Add("number",System.Type.GetType("System.String"));

  462. for(int i=0;i<dt.Rows.Count;i++)

  463. {

  464. dt.Rows["number"]=(i+1).ToString();

  465. }

  466. DataGrid1.DataSource=dt;

  467. DataGrid1.DataBind();

  468. 3.4 DataGrid1中添加一個CheckBox,頁面中添加一個全選框

  469. private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)

  470. {

  471. foreach(DataGridItem thisitem in DataGrid1.Items)

  472. {

  473. ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked;

  474. }

  475. }

  476. 將當前頁面中DataGrid1顯示的數據全部刪除

  477. foreach(DataGridItem thisitem in DataGrid1.Items)

  478. {

  479. if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked)

  480. {

  481. string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString();

  482. Del (strloginid); //刪除函數

  483. }

  484. }

  485. 30.當文件在不同目錄下,需要獲取數據庫連接字符串(如果連接字符串放在Web.config,然後在Global.asax中初始化)

  486. 在Application_Start中添加以下代碼:

  487. Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.AppSettings["ConnStr"].ToString();

  488. 31. 變量.ToString()
  489. 字符型轉換 轉為字符串
  490. 12345.ToString("n"); //生成 12,345.00
  491. 12345.ToString("C"); //生成 ¥12,345.00
  492. 12345.ToString("e"); //生成 1.234500e+004
  493. 12345.ToString("f4"); //生成 12345.0000
  494. 12345.ToString("x"); //生成 3039 (16進制)
  495. 12345.ToString("p"); //生成 1,234,500.00%

  496. 32、變量.Substring(參數1,參數2);
  497. 截取字串的一部分,參數1為左起始位數,參數2為截取幾位。
  498. 如:string s1 = str.Substring(0,2);


  499. 34.在自己的網站上登陸其他網站:(如果你的頁面是通過嵌套方式的話,因為一個頁面只能有一個FORM,這時可以導向另外一個頁面再提交登陸信息)


  500. <SCRIPT language="javascript">
  501. <!--
  502.  function gook(pws)
  503.  {
  504.   frm.submit();
  505.  }
  506. //-->

  507. </SCRIPT> <body leftMargin="0" topMargin="0" onload="javascript:gook()" marginwidth="0" marginheight="0">
  508. <form name="frm" action=" [url]http://220.194.55.68:6080/login.php?retid=7259[/url] " method="post">
  509. <tr>
  510. <td>
  511. <input id="f_user" type="hidden" size="1" name="f_user" runat="server">
  512. <input id="f_domain" type="hidden" size="1" name="f_domain" runat="server">
  513. <input class="box" id="f_pass" type="hidden" size="1" name="pwshow" runat="server">

  514. <INPUT id="lng" type="hidden" maxLength="20" size="1" value="5" name="lng">
  515. <INPUT id="tem" type="hidden" size="1" value="2" name="tem">

  516. </td>

  517. </tr>

  518. </form>

  519. 文本框的名稱必須是你要登陸的網頁上的名稱,如果源碼不行可以用vsniffer 看看。
  520.   下面是獲取用戶輸入的登陸信息的代碼:


  521. string name;
  522. name=Request.QueryString["EmailName"];

  523. try
  524. {
  525.  int a=name.IndexOf("@",0,name.Length);
  526.  f_user.Value=name.Substring(0,a);
  527.  f_domain.Value=name.Substring(a+1,name.Length-(a+1));
  528.  f_pass.Value=Request.QueryString["Psw"];
  529. }

  530. catch
  531. {
  532.  Script.alert("錯誤的郵箱!");
  533.  Server.Transfer("index.aspx");
  534. }

  535. 35.警告窗口

  536. /**//// <summary>
  537. /// 服務器端彈出alert對話框
  538. /// </summary>
  539. /// <param name="str_Message">提示信息,例子:"不能為空!"</param>
  540. /// <param name="page">Page類</param>
  541. public void alert(string str_Message,Page page)
  542. {
  543. page.RegisterStartupScript("","<script>alert(′"+str_Message+"′);</script>");
  544. }

  545. 36.重載此警告窗口,使某控件獲得焦點


  546. /**//// <summary>
  547. /// 服務器端彈出alert對話框,並使控件獲得焦點
  548. /// </summary>
  549. /// <param name="str_Ctl_Name">獲得焦點控件Id值,比如:txt_Name</param>
  550. /// <param name="str_Message">提示信息,例子:"請輸入您姓名!"</param>
  551. /// <param name="page">Page類</param>
  552. public void alert(string str_Ctl_Name,string str_Message,Page page)
  553. {
  554. page.RegisterStartupScript("","<script>alert(′"+str_Message+"′);document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
  555. }

  556. 37.確認對話框


  557. /**//// <summary>
  558. /// 服務器端彈出confirm對話框
  559. /// </summary>
  560. /// <param name="str_Message">提示信息,例子:"您是否確認刪除!"</param>
  561. /// <param name="btn">隱藏Botton按鈕Id值,比如:btn_Flow</param>
  562. /// <param name="page">Page類</param>
  563. public void Confirm(string str_Message,string btn,Page page)
  564. {
  565. page.RegisterStartupScript("","<script> if (confirm(′"+str_Message+"′)==true){document.forms(0)."+btn+".click();}</script>");
  566. }

  567. 38.重載確認對話框,點擊確定觸發一個隱藏按鈕事件,點擊取消觸發一個隱藏按鈕事件


  568. /**//// <summary>
  569. /// 服務器端彈出confirm對話框,詢問用戶準備轉向那些操作,包括「確定」和「取消」時的操作
  570. /// </summary>
  571. /// <param name="str_Message">提示信息,比如:"成功增加數據,單擊\"確定\"按鈕填寫流程,單擊\"取消\"修改數據"</param>
  572. /// <param name="btn_Redirect_Flow">"確定"按鈕id值</param>
  573. /// <param name="btn_Redirect_Self">"取消"按鈕id值</param>
  574. /// <param name="page">Page類</param>
  575. public void Confirm(string str_Message,string btn_Redirect_Flow,string btn_Redirect_Self,Page page)
  576. {
  577. page.RegisterStartupScript("","<script> if (confirm(′"+str_Message+"′)==true){document.forms(0)."+btn_Redirect_Flow+".click();}else{document.forms(0)."+btn_Redirect_Self+".click();}</script>");
  578. }

  579. 39.獲得焦點


  580. /**//// <summary>
  581. /// 使控件獲得焦點
  582. /// </summary>
  583. /// <param name="str_Ctl_Name">獲得焦點控件Id值,比如:txt_Name</param>
  584. /// <param name="page">Page類</param>
  585. public void GetFocus(string str_Ctl_Name,Page page)
  586. {
  587. page.RegisterStartupScript("","<script>document.forms(0)."+str_Ctl_Name+".focus(); document.forms(0)."+str_Ctl_Name+".select();</script>");
  588. }

  589. 40.子窗體返回主窗體


  590. /**////<summary>
  591. ///名稱:redirect
  592. ///功能:子窗體返回主窗體
  593. ///參數:url
  594. ///返回值:空
  595. ///</summary>
  596. public void redirect(string url,Page page)
  597. {
  598. if ( Session["IfDefault"]!=(object)"Default")
  599. {
  600. page.RegisterStartupScript("","<script>window.top.document.location.href=′"+url+"′;</script>");
  601. }
  602. }


  603. 41.判斷是否為數字


  604. /**//// <summary>
  605. /// 名稱:IsNumberic
  606. /// 功能:判斷輸入的是否是數字
  607. /// 參數:string oText:源文本
  608. /// 返回值: bool true:是 false:否
  609. /// </summary>

  610. public bool IsNumberic(string oText)
  611. {
  612. try
  613. {
  614. int var1=Convert.ToInt32 (oText);
  615. return true;
  616. }
  617. catch
  618. {
  619. return false;
  620. }
  621. }

  622. 獲得字符串實際長度(包括中文字符)

  623. //獲得字符串oString的實際長度
  624. public int StringLength(string oString)
  625. {
  626. byte[] strArray=System.Text .Encoding.Default .GetBytes (oString);
  627. int res=strArray.Length ;
  628. return res;
  629. }

  630. 42.將回車轉換為TAB


  631. //當在有keydown事件的控件上敲回車時,變為tab
  632. public void Tab(System.Web .UI.WebControls .WebControl webcontrol)
  633. {
  634. webcontrol.Attributes .Add ("onkeydown", "if(event.keyCode==13) event.keyCode=9");
  635. }

  636. 43.datagrid分頁中如果刪除時出現超出索引


  637. public void jumppage(System.Web.UI.WebControls.DataGrid dg)
  638. {
  639. int int_PageLess; //定義頁面跳轉的頁數
  640. //如果當前頁是最後一頁
  641. if(dg.CurrentPageIndex == dg.PageCount-1)
  642. {
  643. //如果就只有一頁
  644. if(dg.CurrentPageIndex == 0)
  645. {
  646. //刪除後頁面停在當前頁
  647. dg.CurrentPageIndex = dg.PageCount-1;
  648. }
  649. else
  650. {
  651. //如果最後一頁只有一條記錄
  652. if((dg.Items.Count % dg.PageSize == 1) || dg.PageSize == 1)
  653. {
  654. //把最後一頁最後一條記錄刪除後,頁面應跳轉到前一頁
  655. int_PageLess = 2;
  656. }
  657. else //如果最後一頁的記錄數大於1,那麼在最後一頁刪除記錄後仍然停在當前頁
  658. {
  659. int_PageLess = 1;
  660. }
  661. dg.CurrentPageIndex = dg.PageCount - int_PageLess;
  662. }
  663. }
  664. }
複製代碼
您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

本論壇為非營利之網路平台,所有文章內容均為網友自行發表,不代表論壇立場!若涉及侵權、違法等情事,請告知版主處理。


Page Rank Check

廣告刊登  |   交換連結  |   贊助我們  |   服務條款  |   免責聲明  |   客服中心  |   中央分站

手機版|中央論壇

GMT+8, 2026-7-23 07:12 , Processed in 0.034196 second(s), 17 queries .

Powered by Discuz!

© 2005-2015 Copyrights. Set by YIDAS

快速回復 返回頂部 返回列表