解讀26個ASP.Net開發(fā)新手的常見問題(3)_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:淺析ASp.Net自定義驗證碼控件
      最近自己寫了一個自定義驗證碼控件把它拿出來和大家分享分享 具體步驟 1---》新建asp.net 網(wǎng)站 2---》添加新建項目 ,選擇類庫 3---》新建兩個類 3.1--》自定義控件類(WebC

      以下為引用的內(nèi)容:

      〈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超級連接列

      以下為引用的內(nèi)容:

      DataNavigateUrlField="字段名" DataNavigateUrlFormatString="http://xx/inc/delete.aspx?ID={0}"

      15.DataGrid行隨鼠標變色

      以下為引用的內(nèi)容:

      16.模板列

      〈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="選中">
      〈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>

        后臺代碼

      protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
      {
      //改變列的選定,實現(xiàn)全選或全不選。
      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.數(shù)字格式化

      【〈%#Container.DataItem("price")%>的結果是500.0000,怎樣格式化為500.00?】
      〈%#Container.DataItem("price","{0:¥#,##0.00}")%>
      int i=123456;
      string s=i.ToString("###,###.00");

      18.日期格式化

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

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

      應該如何改?


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

      【日期的驗證表達式】
      A.以下正確的輸入格式: [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.以下正確的輸入格式:[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.如何設定全局變量

        Global.asax中
        Application_Start()事件中
        添加Application[屬性名] = xxx;
        就是你的全局變量

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

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

        【ASPNETMENU】點擊菜單項彈出新窗口
        在你的menuData.xml文件的菜單項中加入URLTarget="_blank"
        如:

      〈?xml version="1.0" encoding="GB2312"?>
      〈MenuData ImagesBaseURL="images/">
      〈MenuGroup>
      〈MenuItem Label="內(nèi)參信息" URL="Infomation.aspx" >
      〈MenuGroup ID="BBC">
      〈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.讀取DataGrid控件TextBox值

      foreach(DataGrid dgi in yourDataGrid.Items)
      {
      TextBox tb = (TextBox)dgi.FindControl("yourTextBoxId");
      tb.Text....
      }

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

        〖思歸〗

      〈asp:TemplateColumn HeaderText="數(shù)量">
      〈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="單價">
      〈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="金額">
      〈ItemTemplate>
      〈asp:TextBox id="JinE" runat='server'
      Text='〈%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>' />
      〈/ItemTemplate>
      〈/asp:TemplateColumn>

      〈script language="javascript">
      function DoCal()
      {
      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.datagrid選定比較底下的行時,為什么總是刷新一下,然后就滾動到了最上面,剛才選定的行因屏幕的關系就看不到了

      page_load
      page.smartNavigation=true

      25.在Datagrid中修改數(shù)據(jù),當點擊編輯鍵時,數(shù)據(jù)出現(xiàn)在文本框中,怎么控制文本框的大小 ?

      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.對話框

      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);
      }
       

      分享:解讀ASP.NET網(wǎng)站程序防SQL注入式攻擊方法
      一、什么是SQL注入式攻擊? 所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字符串,欺騙服務器執(zhí)行惡意的SQL命令。在某些表單中,用戶輸入的內(nèi)容直接用來

      共3頁上一頁123下一頁
      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-09-01
      相關.Net教程