ASP.NET 常用代码 3

    技术2022-05-11  72

    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) {  //改变列的选定,实现全选或全不选。  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.数字格式化

      【<%#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")%>

      显示为: 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="内参信息" 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.读取DataGrid控件TextBox值

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

      23.在DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?

      〖思归〗

    <asp:TemplateColumn HeaderText="数量">  <ItemTemplate> <asp:TextBox id="ShuLiang" runat=’server’ Text=’<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>’  οnkeyup="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")%>’  οnkeyup="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中修改数据,当点击编辑键时,数据出现在文本框中,怎么控制文本框的大小 ? 

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

      27. 将时间格式化:string aa=DateTime.Now.ToString("yyyy年MM月dd日"); 

      1.1 取当前年月日时分秒 

    currentTime=System.DateTime.Now; 

      1.2 取当前年 

    int 年= DateTime.Now.Year; 

      1.3 取当前月 

    int 月= DateTime.Now.Month;  

      1.4 取当前日 

    int 日= DateTime.Now.Day;  

      1.5 取当前时 

    int 时= DateTime.Now.Hour;  

      1.6 取当前分 

    int 分= DateTime.Now.Minute;  

      1.7 取当前秒 

    int 秒= DateTime.Now.Second;  

      1.8 取当前毫秒 

    int 毫秒= DateTime.Now.Millisecond; 


    最新回复(0)