精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进

.NET 4.0 精进不休:约定优于配置与 dynamic 的技术基因溯源 约定优于配置(Convention over Configuration)和 dynamic 是现代 .NET 开发的两大基石概念,前者推动框架从显式声明转向智能推断,后者赋予 C# 运行时动态互操作能力。其原理根植于 .NET 4.0 时代对开发效率与抽象层级的深度重构:通过内置默认约定减少样板代码,借助 DLR 实现跨语言与松耦合集成。这一设计哲学持续影响 EF Core 的 Fluent API、ASP.NET Core 的中间件管道及 JSON 序列化生态。在微服务、低代码和领域驱动开发等场景中,理 阅读详情
[源码下载]


精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进


作者: webabcd


介绍
asp.net 4.0 的新增功能
  • 简洁的 web.config 文件
  • 控件的新属性 ViewStateMode - 控件的视图状态模式
  • 控件的新属性 ClientIDMode - 生成客户端 ID 的方式
  • 列表控件的新属性 EnablePersistedSelection - 保存选中项的方式
  • 控件的其他一些增强点
    • RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签
    • Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
    • RepeatLayout - 布局模式,控件在客户端的 HTML 呈现方式
    • Wizard 和 CreateUserWizard 新增了 LayoutTemplate 模板
    • 原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了


示例
1、简洁的 web.config,配置信息被移到了 machine.config
Web.config
代码
<? xml version="1.0" ?>

<!--
    清爽的 web.config 
    配置信息一律都放到 machine.config 里了
-->

< configuration >
    
    
< system.web >
        
< compilation  debug ="true"  targetFramework ="4.0"   />
    
</ system.web >
    
</ configuration >


2、ViewStateMode 属性的用法
ViewStateDemo.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " ViewStateDemo.aspx.cs "  Inherits = " AspDotNet.ViewStateDemo "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
<!--
        ViewStateMode - 控件的视图状态模式
            ViewStateMode.Enabled - 此控件启用 ViewState,并且其子控件中所有 ViewStateMode 为 Inherit 的控件也全部启用 ViewState
            ViewStateMode.Disabled - 此控件禁用 ViewState,并且其子控件中所有 ViewStateMode 为 Inherit 的控件也全部奇偶能用 ViewState
            ViewStateMode.Inherit - 此控件是否启用 ViewState,由其父控件的 ViewStateMode 的值决定
    
-->

    
< asp:PlaceHolder  ID ="PlaceHolder1"  runat ="server"  ViewStateMode ="Disabled" >

        
<!-- 无 ViewState -->
        
< asp:Label  ID ="Label1"  runat ="server"  ViewStateMode ="Disabled"   />

        
< br  />

        
<!-- 有 ViewState -->
        
< asp:Label  ID ="Label2"  runat ="server"  ViewStateMode ="Enabled"   />

        
< br  />

        
<!-- 无 ViewState -->
        
< asp:Label  ID ="Label3"  runat ="server"  ViewStateMode ="Inherit"   />

    
</ asp:PlaceHolder >

    
< br  />
    
<!-- 点击“回发”按钮后观察各个 Label 控件是否启用了 ViewState -->
    
< asp:Button  ID ="Button1"  runat ="server"  Text ="回发"   />
</ asp:Content >

ViewStateDemo.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet
{
    
public   partial   class  ViewStateDemo : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
//  页面第一次加载时,分别给三个 Label 赋值,用于演示是否启用了 ViewState
             if  ( ! Page.IsPostBack)
            {
                Label1.Text 
=   " Label1 " ;
                Label2.Text 
=   " Label2 " ;
                Label3.Text 
=   " Label3 " ;
            }
        }
    }
}


3、ClientIDMode 属性的用法
ClientID.aspx
代码
<% @ Page Title = " ClientID "  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " ClientID.aspx.cs "  Inherits = " AspDotNet.ClientID "  ClientIDMode = " Static "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
    
<!--
        ClientIDMode - 生成客户端 ID 的方式
            ClientIDMode.AutoID - 生成方式和以前一样,为保证唯一,会把其以上各层级的控件ID拿过来拼成一个页面中的唯一ID
            ClientIDMode.Inherit - 继承父控件的客户端ID生成方式
            ClientIDMode.Static - 静态方式。在服务端设置的ID是什么,客户端所呈现的ID就是什么
            ClientIDMode.Predictable - 生成ID的方式为:[Prefix]_[ID]_[Suffix]
        注意:
            在某控件层级中如果没有设置 ClientIDMode,则其默认值为 AutoID
            如果在控件层级中的父级控件设置了 ClientIDMode,则其子控件的默认值为 Inherit
    
-->

    
<!--  ClientIDMode.AutoID 的 Demo  -->
    
< fieldset >
        
< legend > Legacy </ legend >
        
< asp:TextBox  ID ="txtLegacy"  ClientIDMode ="AutoID"  runat ="server"  Text ="ID: txtLegacy"   />
    
</ fieldset >

    
<!--  ClientIDMode.Static 的 Demo  -->
    
< fieldset >
        
< legend > Static </ legend >
        
< asp:TextBox  ID ="txtStatic"  ClientIDMode ="Static"  runat ="server"  Text ="ID: txtStatic"   />
    
</ fieldset >

    
<!--  ClientIDMode.Inherit 的 Demo (注意:Page 上的 ClientIDMode 的值为 Static,所以此控件的客户端ID生成方式也是 Static) -->
    
< fieldset >
        
< legend > Inherit </ legend >
        
< asp:TextBox  ID ="txtInherit"  ClientIDMode ="Inherit"  runat ="server"  Text ="ID: txtInherit"   />
    
</ fieldset >

    
<!--  Predictable 模式中自动分配 Suffix 的方式  -->
    
< fieldset >
        
< legend > Predictable Repeater  </ legend >
        
< div  id ="repeaterContainer" >
            
< asp:Repeater  ID ="repeater"  runat ="server"  ClientIDMode ="Static" >
                
< ItemTemplate >
                    
< div >
                        
< asp:Label  ID ="productPrice"  ClientIDMode ="Predictable"  runat ="server" >
                        
<% #  string .Format(System.Globalization.CultureInfo.CurrentUICulture,  " {0:c} " ,  Eval ( " ProductPrice " )) %>
                        
</ asp:Label >
                    
</ div >
                
</ ItemTemplate >
            
</ asp:Repeater >
        
</ div >
        
< asp:TextBox  ID ="txtPredictableRepeater"  runat ="server"  TextMode ="MultiLine"  Rows ="10"
            ClientIDMode
="Static"  Style ="width: 99%;"   />
    
</ fieldset >

    
<!--  Predictable 模式中分配指定 Suffix 的方式(ClientIDRowSuffix 指定 Suffix 的数据来源)  -->
    
< fieldset >
        
< legend > Predictable ListView  </ legend >
        
< asp:ListView  ID ="listView"  runat ="server"  ClientIDMode ="Static"  ClientIDRowSuffix ="ProductId" >
            
< ItemTemplate >
                
< div >
                    
< asp:Label  ID ="productPrice"  ClientIDMode ="Predictable"  runat ="server" >
                        
<% #  string .Format(System.Globalization.CultureInfo.CurrentUICulture,  " {0:c} " ,  Eval ( " ProductPrice " )) %>
                    
</ asp:Label >
                
</ div >
            
</ ItemTemplate >
            
< LayoutTemplate >
                
< div  id ="listViewContainer" >
                    
< div  id ="itemPlaceholder"  runat ="server"   />
                
</ div >
            
</ LayoutTemplate >
        
</ asp:ListView >
        
< asp:TextBox  ID ="txtPredictableListView"  runat ="server"  TextMode ="MultiLine"  Rows ="10"
            ClientIDMode
="Static"  Style ="width: 99%;"   />
    
</ fieldset >

    
< script  type ="text/javascript" >

        window.onload 
=   function  () {
            document.getElementById(
' <%= txtLegacy.ClientID %> ' ).value  +=   "    ClientID:  "   +   ' <%= txtLegacy.ClientID %> ' ;

            document.getElementById(
' <%= txtStatic.ClientID %> ' ).value  +=   "    ClientID:  "   +   ' <%= txtStatic.ClientID %> ' ;

            document.getElementById(
' <%= txtInherit.ClientID %> ' ).value  +=   "    ClientID:  "   +   ' <%= txtInherit.ClientID %> ' ;

            document.getElementById(
' txtPredictableRepeater ' ).value  =  document.getElementById( ' repeaterContainer ' ).innerHTML;

            document.getElementById(
' txtPredictableListView ' ).value  =  document.getElementById( ' listViewContainer ' ).innerHTML;
        }

    
</ script >
</ asp:Content >

ClientID.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet
{
    
public   partial   class  ClientID : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            BindData();
        }

        
//  绑定数据到 ListView
         private   void  BindData()
        {
            Random random 
=   new  Random();

            List
< Product >  products  =   new  List < Product > ();
            
for  ( int  i  =   0 ; i  <   5 ; i ++ )
            {
                products.Add(
new  Product { ProductId  =  i  +   100 , ProductName  =   " 名称 " , ProductPrice  =  random.NextDouble() });
            }

            listView.DataSource 
=  products;
            listView.DataBind();

            repeater.DataSource 
=  products;
            repeater.DataBind();
        }

        
class  Product
        {
            
public   int  ProductId {  get ;  set ; }
            
public   string  ProductName {  get ;  set ; }
            
public   double  ProductPrice {  get ;  set ; }
        }
    }
}


4、EnablePersistedSelection 属性的用法
EnablePersistedSelection.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " EnablePersistedSelection.aspx.cs "  Inherits = " AspDotNet.EnablePersistedSelection "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >
    
<!--
        EnablePersistedSelection - 保存选中项的方式
            true - 根据 DataKeyNames 指定的字段做为关键字保存选中项(分页操作不会改变选中项)
            false - 根据行在当前页的表中的索引做为关键字保存选中项(分页后,选中项会发生改变。比如,在第一页选中了第一行,那么分页到第二页的时候选此页的第一行就会被当成选中项,也就是选中项发生了改变)
    
-->

    
< asp:GridView  ID ="gridView"  runat ="server"  AllowPaging ="True"  DataSourceID ="ObjectDataSource1"
        CellPadding
="4"  ForeColor ="#333333"  GridLines ="None"  EnablePersistedSelection ="true"
        DataKeyNames
="productId" >
        
< AlternatingRowStyle  BackColor ="White"   />
        
< Columns >
            
< asp:CommandField  ShowSelectButton ="True"   />
            
< asp:BoundField  DataField ="productId"  HeaderText ="productId"  SortExpression ="productId"   />
            
< asp:BoundField  DataField ="productName"  HeaderText ="productName"  SortExpression ="productName"   />
            
< asp:BoundField  DataField ="productPrice"  HeaderText ="productPrice"  SortExpression ="productPrice"   />
        
</ Columns >
        
< FooterStyle  BackColor ="#990000"  Font-Bold ="True"  ForeColor ="White"   />
        
< HeaderStyle  BackColor ="#990000"  Font-Bold ="True"  ForeColor ="White"   />
        
< PagerStyle  BackColor ="#FFCC66"  ForeColor ="#333333"  HorizontalAlign ="Center"   />
        
< RowStyle  BackColor ="#FFFBD6"  ForeColor ="#333333"   />
        
< SelectedRowStyle  BackColor ="#FFCC66"  Font-Bold ="True"  ForeColor ="Navy"   />
        
< SortedAscendingCellStyle  BackColor ="#FDF5AC"   />
        
< SortedAscendingHeaderStyle  BackColor ="#4D0000"   />
        
< SortedDescendingCellStyle  BackColor ="#FCF6C0"   />
        
< SortedDescendingHeaderStyle  BackColor ="#820000"   />
    
</ asp:GridView >
    
< asp:ObjectDataSource  ID ="ObjectDataSource1"  runat ="server"  SelectMethod ="GetData"
        TypeName
="AspDotNet.EnablePersistedSelection" ></ asp:ObjectDataSource >

</ asp:Content >

EnablePersistedSelection.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet
{
    
public   partial   class  EnablePersistedSelection : System.Web.UI.Page
    {
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            
        }

        
//  为 GridView 提供数据
         public  List < Product >  GetData()
        {
            Random random 
=   new  Random();

            List
< Product >  products  =   new  List < Product > ();
            
for  ( int  i  =   0 ; i  <   100 ; i ++ )
            {
                products.Add(
new  Product { ProductId  =  i  +   1 , ProductName  =   " 名称 " , ProductPrice  =  random.NextDouble() });
            }

            
return  products;
        }
    }

    
//  为 GridView 提供数据的实体类
     public   class  Product
    {
        
public   int  ProductId {  get ;  set ; }
        
public   string  ProductName {  get ;  set ; }
        
public   double  ProductPrice {  get ;  set ; }
    }
}


5、控件的其他一些增强点
ControlsEnhancement.aspx
代码
<% @ Page Title = ""  Language = " C# "  MasterPageFile = " ~/Site.Master "  AutoEventWireup = " true "
    CodeBehind
= " ControlsEnhancement.aspx.cs "  Inherits = " AspDotNet.ControlsEnhancement "   %>

< asp:Content  ID ="Content1"  ContentPlaceHolderID ="head"  runat ="server" >
</ asp:Content >
< asp:Content  ID ="Content2"  ContentPlaceHolderID ="ContentPlaceHolder1"  runat ="server" >

    
<!--
        RenderOuterTable - 指定控件在客户端呈现的时候,是否在外层加 table 标签
            FormView,Login,PasswordRecovery,ChangePassword 控件均有此属性 
    
-->
    
< asp:FormView  ID ="FormView1"  runat ="server"  DefaultMode ="Insert"  RenderOuterTable ="false" >
        
< InsertItemTemplate >
            FormView 的插入模板
        
</ InsertItemTemplate >
    
</ asp:FormView >

    
< br  />< br  />

    
<!--
        Menu 控件,在 asp.net 4.0 中将会以 ul li 的方式呈现在客户端
    
-->
    
< asp:Menu  ID ="Menu1"  runat ="server" >
        
< Items >
            
< asp:MenuItem  Text ="Level 1 - Item 1"  Value ="1" >
                
< asp:MenuItem  Text ="New Item"  Value ="3" ></ asp:MenuItem >
            
</ asp:MenuItem >
            
< asp:MenuItem  Text ="Level 1 - Item 2"  Value ="2" >
                
< asp:MenuItem  Text ="Level 2 - Item 1"  Value ="4" ></ asp:MenuItem >
                
< asp:MenuItem  Text ="Level 2 - Item 2"  Value ="5" ></ asp:MenuItem >
            
</ asp:MenuItem >
        
</ Items >
    
</ asp:Menu >

    
< br  />< br  />

    
<!--
        RepeatLayout - 布局模式,控件在客户端的 HTML 呈现方式
            RepeatLayout.Flow - 流式布局,一行一个选项
            RepeatLayout.OrderedList - ol li 布局
            RepeatLayout.UnorderedList - ul li 布局
            RepeatLayout.Table - Table 布局
            CheckBoxList,RadioButton 控件均有此属性
    
-->
    
< asp:CheckBoxList  ID ="CheckBoxList1"  runat ="server"  RepeatLayout ="UnorderedList" >
        
< asp:ListItem  Text ="Item1"   />
        
< asp:ListItem  Text ="Item2"   />
        
< asp:ListItem  Text ="Item3"   />
        
< asp:ListItem  Text ="Item4"   />
        
< asp:ListItem  Text ="Item5"   />
        
< asp:ListItem  Text ="Item6"   />
    
</ asp:CheckBoxList >

    
< br  />< br  />

    
<!--
        Wizard 和 CreateUserWizard 新增了 LayoutTemplate 模板 ,如下
            headerPlaceholder - runtime时,其内容会被 HeaderTemplate 中的内容替换掉
            sideBarPlaceholder - runtime时,其内容会被 SideBarTemplate 中的内容替换掉
            wizardStepPlaceholder - runtime时,其内容会被 WizardStepTemplate 中的内容替换掉
            navigationPlaceholder - runtime时,其内容会被导航模板中的内容替换掉
    
-->
    
< asp:Wizard  ID ="Wizard1"  runat ="server" >
        
< LayoutTemplate >
            
< div  style ="background-color: Yellow" >
                
< asp:PlaceHolder  ID ="headerPlaceholder"  runat ="server"   />
            
</ div >
            
< asp:PlaceHolder  ID ="sideBarPlaceholder"  runat ="server"   />
            
< asp:PlaceHolder  ID ="wizardStepPlaceholder"  runat ="server"   />
            
< div  style ="background-color: Red" >
                
< asp:PlaceHolder  ID ="navigationPlaceholder"  runat ="server"   />
            
</ div >
        
</ LayoutTemplate >
        
< HeaderTemplate >
            Header
        
</ HeaderTemplate >
        
< WizardSteps >
            
< asp:WizardStep  runat ="server"  Title ="Step 1" >
            
</ asp:WizardStep >
            
< asp:WizardStep  runat ="server"  Title ="Step 2" >
            
</ asp:WizardStep >
        
</ WizardSteps >
    
</ asp:Wizard >

    
< br  />< br  />

    
<!--
        原来使用 ListView 必须要有 LayoutTemplate ,在 asp.net 4.0 中可以不再用它了
    
-->
    
< asp:ListView  ID ="listView"  runat ="server"  ClientIDRowSuffix ="ProductId" >
        
< ItemTemplate >
            
< div  style ="background-color: Fuchsia" >
                
<% #  string .Format(System.Globalization.CultureInfo.CurrentUICulture,  " {0:c} " ,  Eval ( " ProductPrice " )) %>
            
</ div >
        
</ ItemTemplate >
        
<% --
        
< LayoutTemplate >
            
< div style = " background-color: Fuchsia " >
                
< div id = " itemPlaceholder "  runat = " server "   />
            
</ div >
        
</ LayoutTemplate >
        
-- %>
    
</ asp:ListView >

</ asp:Content >

ControlsEnhancement.aspx.cs
代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  AspDotNet
{
    
public   partial   class  ControlsEnhancement : System.Web.UI.Page
    { 
        
protected   void  Page_Load( object  sender, EventArgs e)
        {
            BindData();
        }

        
//  绑定数据到 ListView
         private   void  BindData()
        {
            Random random 
=   new  Random();

            List
< Product >  products  =   new  List < Product > ();
            
for  ( int  i  =   0 ; i  <   5 ; i ++ )
            {
                products.Add(
new  Product { ProductId  =  i  +   1 , ProductName  =   " 名称 " , ProductPrice  =  random.NextDouble() });
            }

            listView.DataSource 
=  products;
            listView.DataBind();
        }

        
class  Product
        {
            
public   int  ProductId {  get ;  set ; }
            
public   string  ProductName {  get ;  set ; }
            
public   double  ProductPrice {  get ;  set ; }
        }
    }
}


OK
[源码下载]
STM32实战:AD7606并行接口配置全攻略(附代码避坑指南) 本文详细介绍了STM32与AD7606并行接口的配置方法,包括硬件连接、时序配置、状态机驱动设计及性能优化。通过实战代码和避坑指南,帮助开发者高效实现16位8通道同步采样ADC的数据采集,提升工业应用中的信号处理能力。 阅读详情

相关推荐

如何使用 Ansys OptiSlang 同时运行多个参数化设计研究

了解如何通过使用 OptiSLang 同时运行多个参数化设计研究来提高工作效率。

jkh920184196的博客 2379

升级至ASP.net 4容易引发错误的几点改变

英文原文:ASP.NET 4 Breaking Changeshttp://www.asp.net/learn/whitepapers/aspnet4/breaking-changes  控件生成的代码的变化:Image  和 ImageButton控件 控件不再添加 border="0" 属性。 BaseValidator 类和验证控件不再默认红色文本。 Html

civilman的专栏 1289

Linux安装Oracle sqlplus客户端工具

Linux安装Oracle sqlplus客户端工具

优快云_Nan_Jiang_Li的博客 2776

ASP.NET 4.0的七大新特性之"控件的ClientIDMode"

 在早期的ASP.NET框架中,如果你放置一个控件在一个容器中,如GridView模板列、登录模板、其它,在运行时这些控件的ID将被替换由ASP.NET自身产生的随机唯一ID。            为开发者提供服务方访问控件的Page.FindControl("controlid")以及JavaScript中使用 的document.getElementById("controlid

SysThink的专栏 1579

关于AD中如何绘制原理图及其封装

AD中如何绘制原理图及其封装 题记:这是一个比较基础的知识,之所以我打算写一篇这样的笔记,主要是因为在日常生活中,我极少绘制特殊模块或芯片原理图及其封装。久而久之就忘记咋画了,有时需要画封装的时候又想不起来,网上的资料虽然一堆堆的,但往往只是仅原理图的绘制,或者是仅封装的绘制。为此我写一篇这样的笔记,记录绘制原理图及其封装的一条龙服务,感觉这对我而言尤为重要。 本文分为三大板块,依次是原理图的绘制、封装的绘制、二者的联立 第一板块——原理图的绘制 原理图的建立 第二板块——封装的绘制 第三板块——二者的

weixin_51130221的博客 7万+

Gromacs空蛋白模拟实战:从PDB文件到动力学轨迹的完整流程解析

本文详细解析了使用Gromacs进行空蛋白分子动力学模拟的完整实战流程。从PDB文件处理、力场选择与拓扑构建,到模拟盒子创建、溶剂化与电荷中和,再到能量最小化、NVT/NPT平衡及最终的生产模拟与基础分析,提供了每一步的命令详解和关键注意事项,旨在帮助计算生物学研究者系统掌握这一核心研究工具。

weixin_28454475的博客 275

ASP.NET 4.0的ClientIDMode属性

时光流逝,我们心爱的ASP.NET也步入了4.0的时代,微软在ASP.NET 4.0中对很多特性做了修改。比如我将要讨论的控件ID机制就是其中之一。 在ASP.NET 4.0之前我们总是要为控件的ClientID头疼,比如明明一个叫lblName的Label放在一个叫做grd的GridView里面后,在页面上改Label的ID就变成了诸如grd_clt02_lblName的一长串...

328

组态王7.5和SQLsever数据库交互

摘要:本文详细介绍了组态王7.5与SQL Server 2016数据库交互的实现流程,包括建立连接、数据存储与查询操作。主要内容涵盖ODBC数据源配置、数据库表格创建、数据插入及查询功能实现(含日期控件查询)

gsjkwg的博客 1577

ASP.NET 4.0的ID,ClientID,UniqueID及ClientIDMode属性篇

QQ:1187362408 欢迎技术交流和学习 ASP.NET 4.0的ID,ClientID,UniqueID及ClientIDMode属性篇(ID,ClientID,UniqueID及ClientIDMode属性): TODO: 1,ID:ID是([1] ID是设计的时候自己所指定的ID,是我们分配给服务器控件的编程标识符,我们常常使用this.controlid来

jiaojiao520专栏 1696

链接文件及功能安全:S32K3如何将FLASH驱动放到RAM里面、RAM如何实现软件复位数据不丢失操作。

在通过RTD的SDK也好MCAL也好,始终存在一个问题,生成的代码除了看门狗模块,默认都是放在flash里面,按照正常逻辑来看没啥大的问题,思考一个问题:Flash放在0x100的位置,但是此时我们要操作0x100怎么办?那肯定不允许啊,但是将flash的驱动放在RAM里面就可以避免这个问题的产生。Flash的特性:PF0能操作PF1,当然PF1也能操作PF0的,以此类推,只要不操作自身,想怎么玩都可以。这也是一个物理特性吧。

梦想技术家 2310

AI大模型助力现金流精准预测案例详解

因为它的“注意力机制”能像“人一样思考”——比如,当预测“下周现金流”时,模型会重点关注“最近7天的销售数据”“未来7天的天气”“竞品是否有促销”这些关键因素,而忽略“去年同期的无关数据”。AI大模型不是“取代”财务人员,而是“赋能”他们——把财务人员从“重复的Excel操作”中解放出来,专注于“战略决策”(比如如何优化资金结构、如何提升资金利用率)。比如,“促销力度”这个特征,不是简单的“折扣率”,而是“折扣率×促销天数×覆盖SKU数量”,这样能更准确反映促销对现金流的影响。这些问题的核心,其实是。

AIGC应用创新大全的博客 1258

配置 ClientIDMode 控件ID生成规则

废话不说先例子: <asp:GridView ID="grd" runat="server"AutoGenerateColumns="False" DataKeyNames="Account Number"> <Columns> <asp:TemplateField HeaderText="Number"> ...

weixin_30394333的博客 531

C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题(20ms以内)

本文介绍如何在高速通信情况下解决串口接收的数据来不及处理的问题,由高级工程师多年经验总结而成,绝对是串口领域的实战经验!

qq_34059233的博客 6806

asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其他一些增强点

介绍 asp.net 4.0 的新增功能 简洁的 web.config 文件控件的新属性 ViewStateMode - 控件的视图状态模式控件的新属性 ClientIDMode - 生成客户端 ID 的方式列表控件的新属性 EnablePersistedSelection - 保存选中项的方式控件的其他一些增强点 RenderOuterTable - 指定控件在客户端呈现的时候,是

princelintb的专栏 957

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进

[索引页][源码下载]精进不休 .NET 4.0 (1) - asp.net 4.0 新特性之web.config的改进, ViewStateMode, ClientIDMode, EnablePersistedSelection, 控件的其它一些改进 作者:webabcd介绍asp.net 4.0 的新增功能 简洁的 web.config 文件 控件的...

weixin_34290000的博客 178

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

asp.net 4.0 新特性之web.config的改进控件的其它一些改进

介绍asp.net 4.0 的新增功能 简洁的 web.config 文件 控件的新属性 ViewStateMode - 控件的视图状态模式 控件的新属性 ClientIDMode - 生成客户端 ID 的方式 ...

cuibinmo3519的博客 116

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

asp.net 4.0 新特性(转载)

介绍asp.net 4.0 的新增功能 简洁的 web.config 文件 控件的新属性 ViewStateMode - 控件的视图状态模式 控件的新属性 ClientIDMode - 生成客户端 ID 的方式 列表控件的新属性 EnablePersistedSelection - 保存选中项的方式 控件的其他一些增强点 RenderOuterTable - 指定控件...

weixin_33736048的博客 104

Dot Net FrameWork 4.0 学习笔记(1)

4.0出来很长时间,由于各种原因各种借口也没有去认真的做过了解,这些由于工作关系,硬着头皮还是把4.0的知识点梳理了一遍,记录如下在这风起云涌的WEB2.0+的后时期,确实微软也在积极引导广大的开发者走向WEB标准化,以下的小小变动无一不体现出设计者的妙思奇想.NetFrameWork分为CLR与ClassLi...

weixin_34232744的博客 233

ASP.NET 4.0的ClientIDMode=”Static”未必是最好

ASP.NET 4.0新增的ClientIDMode是一項重大的更新,不知這是什 的話,可以在這裡看看。 預設ClientIDMode是Inherit 不過我想大多數人都會把焦點放在ClientIDMode=”Static”。 由於預設是Inherit,ClientIDMode會以預設的AutoID去制定Controls ID,或者有人會直接在Page Detective把ClientIDMod...

weixin_34090643的博客 339

ASP.NET4.0 新功能之 ViewStateMode 属性

 ASP.NET4.0 提供了一个叫做 ViewStateMode 的新属性,这个属性可以单独设置控件的视图状态。在以前版本的 ASP.NET 中,控件的视图只有在 Page 的 ViewState 启用的前提下才可以单独控制。在 ASP.NET4.0 中,控件的视图状态可以单独设置了,也就是说,即使页面的视图状态没有启用,控件依然可以启用视图状态。 ViewStateMode 属性是

【孟子E章】 8314

ASP.NET 4.0引入的视图状态属性ViewStateMode与原EnableViewState的区别

介绍了ASP.NET 4.0引入的控件视图状态属性ViewStateMode与原EnableViewState的区别,并给出了测试代码。

HuLihui's Blog 5020

ASP.Net中如何使用ClientID

介绍ASP.Net 提供了代码和页面分离的机制,在大多数情况下,这种机制工作得非常好。但是,如果需要使用客户端java脚本来做些工作,你就会遇到麻烦了。问题出在你在设计阶段为server端控件设置的ID值和页面运行时控件实际的ID值不一致。例如,新建一个Web site,增加一个 aspx page,在页面上加入一个text box控件:"mytext" Runat=server>

闫炜的专栏 1万+
上一篇: 系出名门 Android 系列文章索引
下一篇: 精进不休 .NET 4.0 (2) - asp.net 4.0 新特性之url路由, 自定义CacheProvider, 新增的表达式&lt;%: expression %&gt;, QueryExtender控件, 其它新特性
webabcd
博客等级 码龄17年 28粉丝 911原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值