漫漫技术人生路

C#

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  234 随笔 :: 0 文章 :: 30 评论 :: 8 引用

公告

2006年10月17日 #

http://www.cnblogs.com/Clingingboy/archive/2006/09/29/514722.html


http://www.asp.net/cn/default.aspx?tabid=1

http://www.cnblogs.com/zhouxujian/archive/2006/10/11/526339.html
posted @ 2006-10-17 14:58 javaca88 阅读(26) 评论(0) 编辑

   <system.web>
    <httpModules>
      <add name="Page" type="ns.class"></add>
    </httpModules>
  </system.web>

namwspace ns
{
  class class:IhttpModule
{
    public void dispose:IhttpModule.dispose
{

}


   public void init(httpApplication xontext):IhttpModule.init
{

}

}

}
----------------------------------------------------------------
<sessionState mode="Off"/>关闭会话状态
〈pages enableSessionState="ReadOnly"/>设置会话状态为只读
编译缓存的是中间代码在磁盘上
----------------------------------------------------------
输出缓存,借助于缓存整个页面
<%@ OutputCache Duration="30" VaryByParam="none"%>
OutputCache 指令告诉asp/net,一旦已经创建页面输出,就将其存储在缓存中
VaryByParam属性表示外部影响是否会影响如何缓存页面.,none表示不影响,也只缓存一个副本,type意味着将针对变量的每个不同值缓存页面

副本
片段缓存
<%@ Control OutputCache Duration="30" VaryByParam="none"%>只缓存用户控件

缓存后替换

<%@ OutputCache Duration="30" VaryByParam="none"%>
<asp:Substitution ID="sub1" runat="server" MethodName="sub" />
MethodName指示一个函数,返回替换到缓存页面中的数据字符串
  ---------------------
使用存储过程
<asp:sqldatasource>
connectionstring=<%$connectionStrings:dd%>
SelectedCommand="prodd"
selectedCommandType="StoredProcedure"
</asp:sqldatasource>
---------------------------------------------------------
protected void bt_Click(object sender, EventArgs e)
    {
        //更新配置文件 Profile.Name=(textBox)dd.fincontol[""].text
        //server.Transfer方法在请求指定的页面时运行代码  server.Transfer(siteMap.CurrentNode.url)
        //server.Transfer方法停止当前页面的执行,并且在指定的页面上运行内容在这种情况下,希望再次加载当前页面从而刷新页面的当前试图
    }
    protected void logicView_ViewChanged(object sender, EventArgs e)
    {
        //更新配置文件属性的设置
    }

 

<asp:LoginView ID="logicView" runat="server" OnViewChanged="logicView_ViewChanged">
     <LoggedInTemplate>
         you are logged in
     </LoggedInTemplate>
     <RoleGroups>
         <asp:RoleGroup Roles="总经理">
             <ContentTemplate>
              <p>FFFFF总经理角色看到的页面</p>
                 hao rolegroup
                 <p><asp:Button ID="bt" runat="server" Text="bt" OnClick="bt_Click" /></p>
             </ContentTemplate>
         </asp:RoleGroup>
         <asp:RoleGroup Roles="员工">
             <ContentTemplate>
                 员工看到的页面
             </ContentTemplate>
         </asp:RoleGroup>
         <asp:RoleGroup Roles="部门主管">
             <ContentTemplate>
                 部门主管看到的
             </ContentTemplate>
         </asp:RoleGroup>
     </RoleGroups>
     <AnonymousTemplate>
         you are not logged
         <span>DJKLASJGKLJGLREKJ</span>
     </AnonymousTemplate>
 
 </asp:LoginView>

  <system.web>
    <profile enabled="true">
      <properties>
        <add name="userId" type="System.Boolean"></add>
        <!--
        也可以是自定义类型
        <add name="cart" serializaAs="Binary" type="Wrox.commerce.shoopingCart" allowAnonymous="true"/>
        在页面中使用profile.Name="Chris Hart"
        -->
      </properties>
     
    </profile>
   
  </system.web>

 <location path="default.aspx">

    <system.web>

      <authorization>
        <allow roles="员工" />
      </authorization>
      <!--如果加上
    <siteMapNode url="text/default.aspx" roles="员工,部门主管">
    这样将使得部门主管能够看到连接但不能访问连接
    说明web.config中的授权优先级高
    IsInRole()方法用于在代码中使用角色
    public readonly double  member
    {
      get{
            if(httpContext.current.user.IsInRole("员工")
            {
                return subtotal * ff
                string s=String.Format("sub:{0,35:c}",ddvar);
               
            }
            else{
              return 0;
            }
         }
   
    }
    httpContext.Current.User.IsInRole("员工")的调用
    第一次用上面的
    下一次就只要用Context.user.IsInRole("员工")
    两次调用间有区别
    -->
    </system.web>
  </location>

  <location path="test2.aspx">
    <!--
    假设test2是个文件夹,那可以连接自身
    role控制的是文件夹
    -->
    <system.web>

      <authorization>
        <allow roles="总经理" />
        <allow roles="员工" />
      </authorization>
    </system.web>
  </location>

posted @ 2006-10-17 11:39 javaca88 阅读(117) 评论(0) 编辑

HTTP表示HyperText Transfer Protocol,与WEB服务器进行通讯的方法。
get——当在浏览器的地址栏中输入一个 url并按下return时浏览器就会发送这个命令,它的意思是“把这个页面交给我”
post命令用于需要将某些信息发送回WEB服务器,如表单,实际上post将取回一个页面,但它还会将表单中的数据发送回WEB服务器。
标准的HTML和服务器控件之间的最大区别是填写信息并提交按纽,这些信息将被送回到WEB服务器(回送post),标准的HTML中的数据没有得到保留,服务器控件中的数据会保留,在服务器控件中,Wizard控件是专门针对此类情况设计的。

在事件出发时运行的代码叫事件过程或事件处理器

DEtails View 和FormView是单条记录显示控件。

pub Mystates() as string ={"ff","ffv","gg"}
<asp:Dropdownlist id="ff" runat="server" datasource="<%Mystate%>">
绑定语法:
<itemplate>
<asp:lable id="lb" text='<%#Eval("fff")%>'
</itemplate>
String:
startsWith

EndsWith
insert
indexof
lastindexof
length
padleft:字符填充
padrigth
Remove
replace
substring

Page指令:
inherits:告诉用户要继承哪个类
codeFile:指定后台代码文件的名称

每个文件夹都可以有个web.config
posted @ 2006-10-17 10:43 javaca88 阅读(15) 评论(0) 编辑

样式的优先顺序(最小到最大):
Web.config文件内的Stylesheet主题
页面上的Stylesheet主题
Css样式
Element样式
Web.config文件内的Customizaion主题
页面上的Customizaion主题
<system.web>
<pages theme="red" styleSheettheme="blue"/>
如果red:SkinID="bl"     blue:SkinID="bl" 那么将使用red:SkinID="bl" 
对于red:SkinID="bl"     blue:SkinID="blnew"   lable:SkinID="blnew" 那么将使用blue:SkinID="blnew"
也就是说red中没有的,将会从blue中继承.前提是页面上的Stylesheet主题、Css样式没有

posted @ 2006-10-17 08:53 javaca88 阅读(23) 评论(0) 编辑

问题:
    希望在用户视图之外处理脚本错误(异常),避免浏览器向用户报告错误信息。

解决方案:
    一种quick-and-dirty(快餐式?),向后兼容的方式是:将下面的代码置于页面的<head></head>节内:
    function doNothing(){ return true; }
    window.onerror 
= doNothing; 
    这样不会阻止编译期的脚本错误(例如页面加载时解释器发现的语法错误),也不会向你透露代码的何处潜伏着错误。所以只有你的代码经过了充分的测试后才使用这种方法,在测试的时候,要把这些代码去掉。

    在IE5和Netscape6及它们的后续版本中,你可以使用更多的错误(异常)处理方式。为防止早期的浏览器执行这些特殊的脚本时失败,将这些语句所在的<script>标签的language属性设置为JavaScript1.5(language="JavaScript1.5")。
    将可能导致或抛出异常的语句封装在一个try...catch...finally结构中。先执行try块中的语句,其中包含可能发生异常的代码,如果发生异常,则执行catch块中的代码,而不管是否发生异常,最后会无条件执行finally块的语句:
    <script language="javascript1.5">
        
try
        {
            
//tryStatements
        }
        
catch(ex)
        {
            
//catchStatements;
        }
        
finally
        {
            
//finallyStatements;
        }
    
</script>

    每个被抛出的异常都会产生一个Error对象的实例,该对象的引用可以作为catch子句的参数,如上面代码的ex参数,catch子句中的语句可以查看该对象的属性以获得更多信息。到目前为止,在ECMAScript标准中只有两个属性得到正式认可,即message和name。一些浏览器则实现了更多的属性:
   
属性
IE的支持  NN的支持  描述
description
5
n/a
异常的描述信息
fileName n/a
抛出异常的脚本所在文件的URI 
lineNumber
n/a
6
抛出异常的代码的行号
message
5.5
6
异常的描述信息(ECMA)
name
5.5
6
异常类型(ECMA)
number
5
n/a
IE独有的异常代号

    下面的代码演示了异常处理的流程:
    try
    {
        print(
"Outer try running..");
        
try
        {
            print(
"Nested try running...");
            
throw "an error";
        }
        
catch(e)
        {
            print(
"Nested catch caught " + e);
            
throw e + " re-thrown";
        }
        
finally
        {
            print(
"Nested finally is running...");
        }   
    }
    
catch(ex)
    {
        print(
"Outer catch caught " + ex);
    }
    
finally
    {
        print(
"Outer finally running");
    }
    
    
function print(s)
    {
        document.write(s);
    }
    这里使用throw语句抛出一个异常。
    输出结果为:
    Outer try running..
    Nested try running...
    Nested catch caught an error
    Nested finally is running...
    Outer catch caught an error re-thrown
    Outer finally running


    异常的信息不要让用户看到。使用description或message属性来决定如何处理异常。
    也可以在脚本中有意识地抛出异常建立自己的异常处理机制。看下面的示例:
    function processNumber(inputField)
    {
        
try
        {
            
var inpVal = parseInt(inputField.value, 10);
            
if(isNaN(inpVal))
            {
                
var msg = "Please enter a number!";
                
var err = new Error(msg);
                
if(!err.message)
                {
                    err.message 
= msg;
                }
                
throw err;
            }
        }
        
catch(e)
        {
            alert(e.message);
            inputField.focus();
            inputField.select();
        }
    }
    在try块中检测表单域的值,如果不合要求,则抛出自定义异常,catch块会捕获该异常,在这里进行相应的处理。
posted @ 2006-10-17 08:38 javaca88 阅读(163) 评论(1) 编辑

    该文被密码保护。
posted @ 2006-10-17 08:25 javaca88 阅读(56) 评论(0) 编辑