事情起因:
    今天,在做项目的时候,页面中用了两个updatePanel,来实现页面的异步更新。用一个updatePanel中的Button来控制另一个updatePanel中内容的更新,奇怪的是其显示的内容还是原来的内容。为简单起见,我用一个简单的例子来描述我项目中出现的问题。
    首先页面代码:
<body>
    
<form id="form1" runat="server">
    
<asp:ScriptManager ID="ScriptManager1" runat="server">
    
</asp:ScriptManager>
    
<div>
        
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            
<ContentTemplate>
                
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
                
<asp:Label ID="Label1" runat="server" Text="BeforeSubmit"></asp:Label>
            
</ContentTemplate>
        
</asp:UpdatePanel>
        
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Always">
            
<ContentTemplate>
                
<asp:TextBox ID="TextBox2" runat="server">
                
</asp:TextBox>
                
<asp:Button ID="Button2" runat="server" Text="Button" /></ContentTemplate>
        
</asp:UpdatePanel>
    
</div>
    
</form>
</body>
在页面中我定义了两个updatePanel,用updatePanel中的Button1来控制updatePanel2种的TextBox2的取值。后台代码如下:
 public partial class _Default : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{
            TextBox2.Text 
= Label1.Text;
        }


        
protected void Button1_Click(object sender, EventArgs e)
        
{
            Label1.Text 
= "AfterSubmit";
        }


    }

在Page_Load()方法中修改TextBox2中的值,但执行结果:

 TextBox2中的值并没有像想象中的发生变化还是“Beforesubmit",但是再回递页面的话,TextBox2中的值就变成了“AfterSubmit”。
这是为什么呢?通过设置断点,发现,当Button回递页面的时候,先执行的是Page_Load()方法,然后再执行OnClick事件中的Button1_Click(object sender, EventArgs e)方法。这就是问题的根结。
说来真是惭愧,用了这么多button的OnClick事件,竟然不知道事件触发时,系统到底做了哪些工作,导致了这个错误。哎,看来以后学习还是得多上点心啊。

posted @ 2008-05-15 20:55 飞得更高 阅读(195) | 评论 (5)编辑
     摘要: 近期在学习高手的一个项目,页面跳转用了好多方法,搞得我焦头烂额,在高手的指点下,终于搞明白了:页面跳转一般分为两大类:服务器端跳转和客户端跳转,其一般的形式为:如果你要在服务器端跳转,可以这样:Response.Redirect("WebForm1.aspx");Response.End();如果你要在客户端跳转,可以这样:<scriptlanguage="javascript"type="... 阅读全文
posted @ 2008-05-10 09:14 飞得更高 阅读(303) | 评论 (3)编辑

    在近期的一个项目中,遇到了一个问题:

    要在客户端打开一个页面,但这个页面需要传递一个参数,如何将这个参数在客户端传递给页面,令我大费脑筋,终于在高手的指点下,终于解决了这个问题:如下:

 

<form id="FormMain" runat="server">
<script language="javascript" type="text/javascript">
function OnButtonBatchRequireDocumentClick()
{
window.open ('DocumentBatchRequire.aspx?ProjectID=<%= Request["ProjectID"] %>',
                      'newwindow', 'height=320, width=200, top=100, left=100, toolbar=no, menubar=no, 
scrollbars=yes,resizable=no,location=no, status=no'
); } </script> </form>
在这里用到了<%= %>其作用就是执行一段cs代码,并将结果返回到原地。这样,就可以在客户端取得“ProjectID”的参数了。
posted @ 2008-05-09 21:16 飞得更高 阅读(314) | 评论 (3)编辑
     摘要: 对于值类型,如果对象的值相等,则相等运算符 (==) 返回 true,否则返回 false。对于string 以外的引用类型,如果两个对象引用同一个对象,则 == 返回 true。对于 string 类型,== 比较字符串的值。 ==操作比较的是两个变量的值是否相等。 equals()方法比较的是两个对象的内容是否一致.equals也就是比较引用类型是否是对同一个对象的引用。 对于值类型的比较,这... 阅读全文
posted @ 2008-04-11 09:17 飞得更高 阅读(556) | 评论 (7)编辑
     摘要: 由于项目的需要,最近学习了XLST和xml向html的转变。
XML文档的终极目标就是做为一个信息的基本类型来存储信息,载被转化为不同的格式来用于各种应用。W3C提出了扩展样式语言规范来实现上述的目的。XSLT(the eXtensible Stylesheet Language Transformation)既是用于XML文本的转化和格式化的标准语言。现面用一个简单的例子来说明XML文件是如何格式化后转化为和HTML的。
  阅读全文
posted @ 2008-03-26 09:25 飞得更高 阅读(215) | 评论 (0)编辑
    在javascript,三种常用的Window方法是alert(),confirm()和prompt().alert()用于向用户显示消息;confirm()要求用户点击OK或者Cancel来确认和取消某一种得操作。例如:
 <asp:Button runat="sever" id="ButtonDelete" OnClientsClick="return confirm('你确定要删除吗?')">
prompt 要求用户输入一个字符串。例如:
  

 <script type="text/javascript" language="javascript">
        function pageLoad(event ,args)
        {
            //pro();
            focus();
        }
        function focus()
        {
            document.forms[0].TextBoxName.onfocus=pro;
            document.forms[0].TextBoxName.onchange=pro;
        }
        function pro()
        {
            var TempA=window.prompt("请输入你的姓名","");
            var TempB="";
           
            if(TempA==null||TempA=="")
            {
                TempA="你没有输入任何的字符";
            }
            else
            {
                TempB = TempA;
                TempA="你输入的名字是 "+TempB;
            }
            alert(TempA);
           
            if(TempB!=null||TempB!=""){
                this.value=TempB;
                document.forms[0].Button1.focus();
              }
        }
      
    </script>

    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <div>
        <asp:TextBox ID="TextBoxName" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
   这是我昨天学习的javascript,并做的几个练习,欢迎各位网友积极拍砖。

posted @ 2007-12-13 09:49 飞得更高 阅读(24) | 评论 (0)编辑
  用Listview显示数据库的信息,如果信息太多,必须要分页。
  这里有两种方法:
  一种是:Listview是不支持分页功能的。但可以结合控件DataPager对Listview进行分页,可以将DataPager控件添加到Listview控件的<LayoutTemplate></LayoutTemplate>中,或者放在ListView控件的外面,这里要注意将DataPager控件的PagedControlID属性值设为ListView的ID。
  第二种是,在从数据库中读取信息时就分页读取。
 假设你想从数据库中读取某一信息,并且按照某一列进行降序排序,我们可以这么做:
  一:取出表中按某一列进行降序排序的前count行
   SELECT TOP count * FROM [TABLE] WHERE [] ORDER BY [] DESC
  二:取出这count行中后面的count1行,则可以这样写SELECT语句: 
    SELECT TOP count1 * FROM (SELECT TOP count * FROM [TABLE] WHERE [] ORDER BY [] DESC
) a ORDER BY []  ASC
  三:取出的这count1行进行按某一列的降序排序,可以这么写:
   SELECT * FROM (SELECT TOP count1 * FROM (SELECT TOP count * FROM [TABLE] WHERE [] ORDER BY [] DESC) a ORDER BY []  ASC) b ORDER BY [] DESC
这样就可以实现Listview的分页显示了。




posted @ 2007-12-06 11:48 飞得更高 阅读(271) | 评论 (0)编辑