﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-露雨城市－南京.NET爱好者</title><link>http://www.cnblogs.com/luyu/</link><description>主要讨论的为C#,ASP.NET,Sql Server2005,包括VSTS 2005的相关工具和功能。</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 13:54:37 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 13:54:37 GMT</pubDate><ttl>60</ttl><item><title>关于微软2008技术预览大会南京站和Vista</title><link>http://www.cnblogs.com/luyu/archive/2007/12/25/1014616.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Tue, 25 Dec 2007 12:34:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2007/12/25/1014616.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/1014616.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2007/12/25/1014616.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/1014616.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/1014616.html</trackback:ping><description><![CDATA[20号去中心大酒店听了技术预览大会比较失望,首先酒店不怎么样还要收停车费,真是晕.<br />
其次感觉微软做的工作越来越不好了,一点也不充分.基本上照PPT读,而且也没有什么互动,<br />
对于新技术讲的早就在网上听过了,看过了.LINQ也没怎么说,还不如SDK上的例子来的清晰明了.<br />
<br />
不过回家在一台512M的1G的机器上装了U版的Vista,然后装了VS2008 TS版,MSDN,Office2007,运行起来一点也不慢,只是启动的时间比较慢,可能要3分钟左右.运行程序不算慢.还有我的硬盘是5400转的老硬盘.这一点让我感觉和大家在网上讲的不太一样,我的分数只有2.9分,不过我还算满意,准备用来学习VS2008和办公用也不错的.<br />
<br />
自从上次微软欠我礼物不给之后(会不会给工作人员贪了),我就发现微软现在做的"越来越不上路了",不知道是不是我心理作用.虽然现在学习.net只是我的业余爱好,不过我仍然很有激情.还经常在学校给同学们讲.net的课程.只是希望微软能观望在中国的发展,不要让人看起来在走下坡路.<br />
<br />
同时我也很期待正在学习.net3.5的朋友共同研究,共同学习~
<img src ="http://www.cnblogs.com/luyu/aggbug/1014616.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41940/" target="_blank">[新闻]惠普139亿美元完成对EDS的收购</a>]]></description></item><item><title>也许是转折－放弃了5,6K的月薪</title><link>http://www.cnblogs.com/luyu/archive/2007/08/25/869621.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Sat, 25 Aug 2007 12:05:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2007/08/25/869621.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/869621.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2007/08/25/869621.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/869621.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/869621.html</trackback:ping><description><![CDATA[<p>其实我一直有一个愿望就是能做生意，买一套门面房。后来当中也做过一段时间的小生意，我还挺满意的。后来因为门面房没有了，就放弃了。<br />
之后一直从事我也比较满意的工作，讲师。月薪也不错，基本工资，5,6K，如果加班辛苦一点，可以拿到8K以上。不过非常想不通的是，我表哥又叫我下来帮他做房地产的生意，拿的钱不多，4,5K，而且还要拿自己的车车跑。不过它说工作算轻松，而且可以让我学学做生意。我原来没有答应，后来没办法，逼的紧，只好答应下来了。<br />
放弃了现在5,6K的稳定收入，我也不知道这是好事还是坏事。不管了，也算是机遇搞搞我不在行的，可以学习学习。在行的还可以再回来吧，我想。但愿不要事与愿违，呵。。。<br />
原来一直用视佳DVD软件的（盗版）不过很不好用，而且老是破解的不好。正好这两天有时间，所以搞了一个KTV软件，现在也能马马虎虎用起来了。不过功能还太少了。继续努力改善了。关于这个我想有时间特地写一篇文章来和大家交流一下。主要是这次转折的问题，希望大家为我祝福吧。： ）</p>
<img src ="http://www.cnblogs.com/luyu/aggbug/869621.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>关于vs2005中ajax控件暴露模板中控件,请高手进来聊聊.</title><link>http://www.cnblogs.com/luyu/archive/2007/08/08/848097.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Wed, 08 Aug 2007 09:33:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2007/08/08/848097.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/848097.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2007/08/08/848097.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/848097.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/848097.html</trackback:ping><description><![CDATA[我今天在做例子的时候,在datalist中的模板列中加了两个textbox,然后进行绑定,因为我又放了一个日历控件,所以为了客户端不刷新,我就加了ajax控件,然后把日历控件拖到ajax控件中UpdatePanel中.<br><br>结果我发现日历控件直接暴露在当前的Page实例中了,也就是说可以直接使用Calendar1.SelectedDate来得到它的值了.而在之前都是要通过FindControl("Calendar1")来实现的.<br><br>可是奇怪的事发生了,我接着用了FindControl("TextBox2")的方法,想得到第二个广本框的对象引用,然后给它赋上日历控件当前选择的日期值.因为我是在日历控件的onSelectionChanged事件中写的,所以怎么也没得到值.<br>我发现明明已经得到文本框的对象引用了,可是赋值无效.我猜想是UpdatePanel的问题,于是我把TextBox2也放到了UpdatePanel中来,结果可以了,而且TextBox2也直接暴露出来了.<br><br>那我在onSelectionChanged中直接写TextBox2.Text = Calendar1.SelectedDate.ToShortDateString();就行了.<br><br>方便是方便了,不过不知道这是好还是坏,因为我不明白这里面的原理,我接触vs2005的ajax控件也没多久,所以我想了解的深入一点,请高手能够指教这里的原因,以及暴露控件ID的原理或更多内容,谢谢.<br><br>想先放在首页几天,得到答案后,我就会自动取消放在首页的,请dudu支持,谢谢.
<img src ="http://www.cnblogs.com/luyu/aggbug/848097.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>这个基础题，你能做对吗？</title><link>http://www.cnblogs.com/luyu/archive/2007/07/20/825524.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Fri, 20 Jul 2007 06:48:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2007/07/20/825524.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/825524.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2007/07/20/825524.html#Feedback</comments><slash:comments>14</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/825524.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/825524.html</trackback:ping><description><![CDATA[今天我遇到一个题目，是关于AcceptChanges()和RejectChanges()方法的，考虑到可能很多人不清楚这些概念。<br>所以拿出来讲讲。由这个问题我们也深入了解一下这两个方法。<br>为了不在显示略文时显示出代码来，我就在刚开始多打一点字了。呵。。。<br><br>题目的代码如下：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;button1_Click(</span><span style="COLOR: #0000ff">object</span><span style="COLOR: #000000">&nbsp;sender,&nbsp;System.EventArgs&nbsp;e)<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img id=Codehighlighter1_64_568_Open_Image onclick="this.style.display='none'; Codehighlighter1_64_568_Open_Text.style.display='none'; Codehighlighter1_64_568_Closed_Image.style.display='inline'; Codehighlighter1_64_568_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_64_568_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_64_568_Closed_Text.style.display='none'; Codehighlighter1_64_568_Open_Image.style.display='inline'; Codehighlighter1_64_568_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_64_568_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_64_568_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataSet&nbsp;ds</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataSet();<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataTable&nbsp;tb&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ds.Tables.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Items</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataColumn&nbsp;pk&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tb.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">ID</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(Int32));<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.Columns.Add(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Items</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #0000ff">typeof</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">));<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img id=Codehighlighter1_275_278_Open_Image onclick="this.style.display='none'; Codehighlighter1_275_278_Open_Text.style.display='none'; Codehighlighter1_275_278_Closed_Image.style.display='inline'; Codehighlighter1_275_278_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_275_278_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_275_278_Closed_Text.style.display='none'; Codehighlighter1_275_278_Open_Image.style.display='inline'; Codehighlighter1_275_278_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.PrimaryKey&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;DataColumn[]&nbsp;</span><span id=Codehighlighter1_275_278_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_275_278_Open_Text><span style="COLOR: #000000">{pk}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">6</span><span style="COLOR: #000000">;i</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img id=Codehighlighter1_309_414_Open_Image onclick="this.style.display='none'; Codehighlighter1_309_414_Open_Text.style.display='none'; Codehighlighter1_309_414_Closed_Image.style.display='inline'; Codehighlighter1_309_414_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_309_414_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_309_414_Closed_Text.style.display='none'; Codehighlighter1_309_414_Open_Image.style.display='inline'; Codehighlighter1_309_414_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_309_414_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_309_414_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataRow&nbsp;dr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tb.NewRow();<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i.ToString();<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dr[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Itme&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">i;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.Rows.Add(dr);<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.AcceptChanges();<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tb.RejectChanges();<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataGrid1.DataSource&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;tb;<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
我们看到在第3-16行，实际上我们是生成了一个DataTable，这个dt有两个字段，分别是ID和Items，然后通过添加6条记录。<br>如果到此为止，那么这个的内容应该是如下：<br>
<table style="WIDTH: 320px; BORDER-COLLAPSE: collapse" cellSpacing=1 cellPadding=1 border=1>
    <tbody>
        <tr>
            <td>ID</td>
            <td>Items</td>
        </tr>
        <tr>
            <td>0</td>
            <td>Item 0</td>
        </tr>
        <tr>
            <td>1</td>
            <td>Item 1</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Item 2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>Item 3</td>
        </tr>
        <tr>
            <td>4</td>
            <td>Item 4</td>
        </tr>
        <tr>
            <td>5</td>
            <td>Item 5</td>
        </tr>
    </tbody>
</table>
<p>不过我们在第19,20,21行中分别删除了第0行，然后是移除第1行，移除第2行。当然如果只是这样就算不上题目了，我们在18和22行用到了DataTable的AcceptChanges()方法和RejectChanages()方法。<br><br>首先大家先想一下答案是什么？随便我把MSDN上对这两个方法的解释粘一下，好让大家理解。<br><br><span style="COLOR: red">DataTable.AcceptChanges方法</span><br><span style="COLOR: #999999">提交自上次调用 AcceptChanges 以来对该表进行的所有更改。调用 AcceptChanges 时，任何仍处于编辑模式的 DataRow 对象将成功结束其编辑。DataRowState 也会随之更改：所有状态为 Added 和 Modified 的行的状态都变为 Unchanged；状态为 Deleted 的行则被移除。<br>在您尝试使用 DbDataAdapter.Update 方法更新 DataSet 之后，通常会对 DataTable 调用 AcceptChanges 方法。<br><br><span style="COLOR: #ff0000">DataTable.RejectChanges方法</span><br>回滚自该表加载以来或上次调用 AcceptChanges 以来对该表进行的所有更改。<br>调用 RejectChanges 时，任何仍处于编辑模式的 DataRow 对象将取消其编辑。新行被移除。DataRowState 设置为 Modified 或 Deleted 的行返回到其初始状态。<br><br><span style="COLOR: #000000">一个意思表示立即更新，一个表示在接受上次调用AcceptChanges后进行回滚。</span></span></p>
<p><span style="COLOR: #999999"><span style="COLOR: #000000">好的，那么是不是说，我们这儿的3条记录都能够回滚回来呢?</span></span></p>
<p><span style="COLOR: #999999"><span style="COLOR: #000000">我们先公布一下答案吧，看看和大家想的是不是一样的。<br></p>
<p>
<table style="WIDTH: 320px; BORDER-COLLAPSE: collapse" cellSpacing=1 cellPadding=1 border=1>
    <tbody>
        <tr>
            <td>ID</td>
            <td>Items</td>
        </tr>
        <tr>
            <td>0</td>
            <td>Item 0</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Item 2</td>
        </tr>
        <tr>
            <td>4</td>
            <td>Item 4</td>
        </tr>
        <tr>
            <td>5</td>
            <td>Item 5</td>
        </tr>
    </tbody>
</table>
</p>
<p><br>OK，答案表明并不是所有的记录都被回滚回来了，似乎只有0被回滚了。这并不是奇怪，那是因为我们使用删除行的方法不一样，一个是Delete()，一个是RemoveAt(int)。<br><br>我们通过在MSDN中的查询了解到在使用 Delete 方法后，RowState 变成&#8220;已删除&#8221;。在您调用 AcceptChanges 之前，它一直保持&#8220;已删除&#8221;。可通过调用 RejectChanges 取消删除行。</p>
<p>而RemoveAt表示当移除行时，该行中的所有数据都将丢失。您还可以调用 DataRow 类的 Delete 方法来标记某行以供移除。调用 RemoveAt 等同于先调用 Delete 再调用 AcceptChanges。<br><br>那就是说，我们使用Delete()方法删除行后是可以回滚的，而使用RemoveAt(int)方法是不能回滚的。<br>所以刚刚前面我们删除的三行，只回滚了0的那行是完成正确的。我想大家对答案应该没有疑问了。<br><br>从这个题目中，我引申出几个题目来，看看大家会不会做哦？<br><br>下面接着，我们再来修改一下代码看看。<br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.AcceptChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.RejectChanges();</span></div>
<br>我们把AcceptChanges()方法放到后Delete()后面，很明显这样做，会让ID为0的数据也无法回滚。为什么大家看我上面粘的MSDN解释就知道了。<br><br>那么就这的话，答案会是什么呢，会不会有人想到是2，4，5呢。<br><br>想到2，4，5的人就错了哦。因为当接受AcceptChanges()方法后，前面的0行就彻底删除了，这时数据应该是1，2，3，4，5，然后RemoveAt(1)表示删除第2行，删除后也是立刻删除的，无法回滚，所以这时数据应该是1，3，4，5，接着RemoveAt(2)删除第3行，所以答案应该是1，3，5。<br>而原来把AcceptChanage()方法放在Delete()前面时，当调用tb.Rows[0].Delete()时，只是标记状态为删除，并没有直接移除第0行，所以那个RemoveAt(1)，还是从0，1，2，3，4，5中删除第2行，所以答案是0，2，4，5。<br><br>好，我们再修改一下代码：<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tb.AcceptChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.AcceptChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.RejectChanges();</span></div>
<p>大家来猜猜答案是什么呢？<br><br>不知道有没有人想到会是2，4，5，实际上不对。<br>正确的答案应该是2，3，5。<br><br>首先的第一个AcceptChanages表示将无法回滚前面添加数据的操作。接着第二个AcceptChanages表示彻底删除Delete()所删除的数据，这个时候数据就只剩下2，3，4，5了，然后再RemoveAt(2)把第三行删除了，所以就剩下2，3，5了。<br><br>好的，我们再把第一个AcceptChanages()方法给删除了，大家想想答案会是什么呢，代码如下：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.AcceptChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.RejectChanges();</span></div>
<p>可能有人说了，AcceptChanages()方法是对前面的语句生效的，所以你把这个删除了一点问题也没有，答案当然还是2，3，5了，其实这种说法是错误的。<br><br>这段代码的正确答案是1，3，5。<br>为什么会是这样呢，那是因为当Delete()方法在前面没有接收到AcceptChaages()方法后，会彻底删除因为没有必要回滚。所以RemoveAt(1)在执行时，实际上数据是1，2，3，4，5，它删除第2行，也就是3。<br><br>好的，我们再看看下面的这段代码：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.AcceptChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.RejectChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>不知道有没有人会笑话我，实际上这段代码和上面的代码是一个效果哦。<br><br>那么我们再看看这段代码呢？<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">tb.Rows[</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">].Delete();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.Rows.RemoveAt(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top>tb.RejectChanges();<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>我们把所有的AcceptChanges()方法都给去掉了，那么只剩下RejectChanages()方法了，会是什么样的结果呢？<br>结果返回空记录了，为什么呢？？？？<br><br>其实在前面最早是无已经给出定义了，不知道的同学是太粗心了哦。自己去看哦。</span></span> 
<img src ="http://www.cnblogs.com/luyu/aggbug/825524.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item><item><title>好久没有来发文章了，今天来秀一下。</title><link>http://www.cnblogs.com/luyu/archive/2007/05/27/761298.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Sun, 27 May 2007 00:43:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2007/05/27/761298.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/761298.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2007/05/27/761298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/761298.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/761298.html</trackback:ping><description><![CDATA[<p>新年刚刚天降一个女儿给我，所以忙啊。<br>接着搬到父母那儿去住了，又搞了个门面房做生意（现在还没开起来）。<br>结果半路清华IT又让去讲课，竟然是ASP，好久没搞东东了。不过<br>我讲起来也没问题啊。<br>然后接着帮别人搞网络布线，开发软件和网站。接着可能还要讲JAVA的课程，<br>JAVA这东东我不是太熟，不过我一看，C#2.0还真像它啊。这下好了，<br>MS也有做好人的时候，哈。。。<br>6月1日之后，我要开放我的网站，然后接着写一些技术文章放到这儿来。<br>想念博客园，也想念大家啊。</p>
<img src ="http://www.cnblogs.com/luyu/aggbug/761298.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41936/" target="_blank">[新闻]微软正在构思将Wi-Fi带入汽车</a>]]></description></item><item><title>在.NET2.0中如何更简单的使用委托将方法加载到事件中去</title><link>http://www.cnblogs.com/luyu/archive/2006/10/22/536221.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Sun, 22 Oct 2006 00:13:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2006/10/22/536221.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/536221.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2006/10/22/536221.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/536221.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/536221.html</trackback:ping><description><![CDATA[我们知道在System命名空间中，.NET为我们提供了EventHandler的委托，它的原型是delegate void EventHandler(object sender,EventArgs e)，（当然这是针对某些控件的普通事件来的，其他事件的事件参数EventArgs会发生改变）所以只要我们的方法符合这个委托的原型，我们就可以使用这个委托实例。如按钮的点击事件。<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">button1.Click&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;EventHandler(Button_Click);</span></div>
<br>所以上面的Button_Click方法只要符合EventHandler的委托原型我们就可以这样来使用它，如何定义这个方法呢？<br>void Button_Click(object sender,EventArgs e)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp; MessageBox.Show("我被点击了");<br>}<br>，其实这个实现起来已经很简单了，不过在.NET2.0中，也就是Visual C# 2005中，我们可以更加简单的使用委托：<br>button1.Click += Button_Click;<br>直接将方法名加载到事件中，完成了委托了隐形调用，非常的方便。 
<img src ="http://www.cnblogs.com/luyu/aggbug/536221.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41935/" target="_blank">[新闻]对比测试：IE8 Beta 2 VS Firefox 3.0.1</a>]]></description></item><item><title>Visual C#中父窗口和子窗口之间实现控件互操作</title><link>http://www.cnblogs.com/luyu/archive/2006/10/20/534281.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Thu, 19 Oct 2006 23:10:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2006/10/20/534281.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/534281.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2006/10/20/534281.html#Feedback</comments><slash:comments>12</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/534281.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/534281.html</trackback:ping><description><![CDATA[<p>在.NET 1.0和1.1的版本中，我们要实现父窗口和子窗口之间的互操作，有两种简单的方法。<br>第一种，在主窗体类中定义一个静态成员，来保存当前主窗体对象，例如：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">static</span><span style="COLOR: #000000">&nbsp;yourMainWindow&nbsp;pCurrentWin&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span></div>
<p>　　&nbsp;然后在主窗体构造函数中，给静态成员初始化，如下：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">pCurrentWin&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span></div>
<p>　　&nbsp;那么在子窗体中调用父窗体，可以通过&#8220;主窗体类名.&nbsp;pCurrentWin&#8221;来操作当前的主窗体。&nbsp; <br><br>　　&nbsp;第二种，是在子窗体中定义一个私有成员，来保存当前主窗体对象，例如：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;yourMainWindow&nbsp;pParentWin&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">null</span><span style="COLOR: #000000">;&nbsp;&nbsp;</span></div>
<p>　　&nbsp;然后在子窗体构造函数中，加一参数，如下：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;yourChildWindow(&nbsp;yourMainWindow&nbsp;WinMain&nbsp;)&nbsp;&nbsp;<br><img id=Codehighlighter1_51_98_Open_Image onclick="this.style.display='none'; Codehighlighter1_51_98_Open_Text.style.display='none'; Codehighlighter1_51_98_Closed_Image.style.display='inline'; Codehighlighter1_51_98_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_51_98_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_51_98_Closed_Text.style.display='none'; Codehighlighter1_51_98_Open_Image.style.display='inline'; Codehighlighter1_51_98_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_51_98_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_51_98_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>　&nbsp;pParentWin&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;WinMain;&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>　&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Other&nbsp;code&nbsp;&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span></div>
<p>　　&nbsp;在主窗体创建子窗体的时候，要把this作为参数来构造子窗体，这样在子窗体中调用父窗体，可以直接用&#8220;this.pParentWin&#8221;就可以了&nbsp; <br><br>　　&nbsp;不过以上所作的，只是让你能够访问当前主窗体对象，那么如何操作控件，很多人直接修改控件的成员访问符，即把&#8220;private&#8221;改为&#8220;public&#8221;，我觉得这样破坏了本身类的封装，所以我比较喜欢的做法是增加公有属性或方法来供调用，例如：&nbsp; <br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&nbsp;ButtonText&nbsp;&nbsp;<br><img id=Codehighlighter1_27_86_Open_Image onclick="this.style.display='none'; Codehighlighter1_27_86_Open_Text.style.display='none'; Codehighlighter1_27_86_Closed_Image.style.display='inline'; Codehighlighter1_27_86_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_27_86_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_27_86_Closed_Text.style.display='none'; Codehighlighter1_27_86_Open_Image.style.display='inline'; Codehighlighter1_27_86_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_27_86_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_27_86_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;<br><img id=Codehighlighter1_36_54_Open_Image onclick="this.style.display='none'; Codehighlighter1_36_54_Open_Text.style.display='none'; Codehighlighter1_36_54_Closed_Image.style.display='inline'; Codehighlighter1_36_54_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_36_54_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_36_54_Closed_Text.style.display='none'; Codehighlighter1_36_54_Open_Image.style.display='inline'; Codehighlighter1_36_54_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>　&nbsp;</span><span style="COLOR: #0000ff">get</span><span id=Codehighlighter1_36_54_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_36_54_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;btn.Text;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;<br><img id=Codehighlighter1_63_82_Open_Image onclick="this.style.display='none'; Codehighlighter1_63_82_Open_Text.style.display='none'; Codehighlighter1_63_82_Closed_Image.style.display='inline'; Codehighlighter1_63_82_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_63_82_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_63_82_Closed_Text.style.display='none'; Codehighlighter1_63_82_Open_Image.style.display='inline'; Codehighlighter1_63_82_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>　&nbsp;</span><span style="COLOR: #0000ff">set</span><span id=Codehighlighter1_63_82_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_63_82_Open_Text><span style="COLOR: #000000">{&nbsp;btn.Text&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;value;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Button_Click()&nbsp;&nbsp;<br><img id=Codehighlighter1_120_183_Open_Image onclick="this.style.display='none'; Codehighlighter1_120_183_Open_Text.style.display='none'; Codehighlighter1_120_183_Closed_Image.style.display='inline'; Codehighlighter1_120_183_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_120_183_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_120_183_Closed_Text.style.display='none'; Codehighlighter1_120_183_Open_Image.style.display='inline'; Codehighlighter1_120_183_Open_Text.style.display='inline';" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_120_183_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cnblogs.com/Images/dot.gif"></span><span id=Codehighlighter1_120_183_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;<br><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align=top>　&nbsp;</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">.btnDConvert.PerformClick();</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">Execute&nbsp;button&nbsp;click&nbsp;&nbsp;</span><span style="COLOR: #008000"><br><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">&nbsp;</span></div>
<br>虽然简单，不过略显得麻烦，在.NET 2.0版本中，也就是Visual C# 2005的版本中，我们可以直接使用Application.OpenForm["formname"].Controls("ControlName")来控制控件,可以说是非常的方便。<br>
<img src ="http://www.cnblogs.com/luyu/aggbug/534281.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41934/" target="_blank">[新闻]iPhone存在严重密码安全漏洞</a>]]></description></item><item><title>关于如何在子窗口中选择后，在父窗口赋值并让输入框设为只读。</title><link>http://www.cnblogs.com/luyu/archive/2006/07/21/456357.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Fri, 21 Jul 2006 03:50:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2006/07/21/456357.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/456357.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2006/07/21/456357.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/456357.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/456357.html</trackback:ping><description><![CDATA[<p>刚开始我发现只要在子窗口中选择记录后，使用js为父窗口中的文本框赋值时，父窗口中的文本框，无法设置为readonly,也不能将enabled设置为flase，否则看到文本框中是被赋值了，可是却无法保存。<br><br>最后只好使用textBox1.Attributes[<span style="COLOR: #000000">"</span><span style="COLOR: #000000">readonly</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">true</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;，使用这行代码后才可以设置为只读，也不影响服务器控件对它的影响。<br><br>希望这个小技巧对大家有用。</span></p>
<img src ="http://www.cnblogs.com/luyu/aggbug/456357.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41931/" target="_blank">[新闻]GC2008：星际争霸2进程报告 微调进程延续</a>]]></description></item><item><title>我的新资源网站开张了，韩国模版，韩国设计资源等。</title><link>http://www.cnblogs.com/luyu/archive/2006/06/06/419058.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Tue, 06 Jun 2006 14:00:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2006/06/06/419058.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/419058.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2006/06/06/419058.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/419058.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/419058.html</trackback:ping><description><![CDATA[<a title=韩国资源网 href="http://www.getwant.com/">韩国资源网</a><br><br>一共有１２万多个资源，最近在慢慢的加入，不知道何时能加完呢，呵。。。<br><br>正好测试使用支付宝。
 <img src ="http://www.cnblogs.com/luyu/aggbug/419058.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41930/" target="_blank">[新闻]科学家在世界最大对撞机中观察到首批粒子</a>]]></description></item><item><title>关于在插入的模版中如何为已绑定了Text属性的TextBox设置默认值</title><link>http://www.cnblogs.com/luyu/archive/2006/06/05/417949.html</link><dc:creator>露雨城市.NET2.0和Sql Server 2005开发研究</dc:creator><author>露雨城市.NET2.0和Sql Server 2005开发研究</author><pubDate>Mon, 05 Jun 2006 10:34:00 GMT</pubDate><guid>http://www.cnblogs.com/luyu/archive/2006/06/05/417949.html</guid><wfw:comment>http://www.cnblogs.com/luyu/comments/417949.html</wfw:comment><comments>http://www.cnblogs.com/luyu/archive/2006/06/05/417949.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnblogs.com/luyu/comments/commentRss/417949.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/luyu/services/trackbacks/417949.html</trackback:ping><description><![CDATA[<p>很多时候，我们发现在插入模版中，想为TextBox设置一个默认值。<br>这时TextBox的Text属性已经绑定了数据表中的相关键值，不能去除，要不然就不能插入了。<br>那要怎么做呢？<br>其实很简单，就是为TextBox设置一个Value属性。<br>请看以下的代码示例：</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:TemplateField&nbsp;</span><span style="COLOR: #ff0000">HeaderText</span><span style="COLOR: #0000ff">="家庭电话"</span><span style="COLOR: #ff0000">&nbsp;SortExpression</span><span style="COLOR: #0000ff">="Homephone"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">EditItemTemplate</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:TextBox&nbsp;</span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="TextBox8"</span><span style="COLOR: #ff0000">&nbsp;runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000">&nbsp;Text</span><span style="COLOR: #0000ff">='&lt;%#&nbsp;</span><span style="COLOR: #ff0000">Bind("Homephone")&nbsp;%</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">'&gt;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">asp:TextBox</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:RequiredFieldValidator&nbsp;</span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="RequiredFieldValidator11"</span><span style="COLOR: #ff0000">&nbsp;runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000">&nbsp;ControlToValidate</span><span style="COLOR: #0000ff">="TextBox8"</span><span style="COLOR: #ff0000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMessage</span><span style="COLOR: #0000ff">="*"</span><span style="COLOR: #ff0000">&nbsp;SetFocusOnError</span><span style="COLOR: #0000ff">="True"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">asp:RequiredFieldValidator</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">EditItemTemplate</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">InsertItemTemplate</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:TextBox&nbsp;</span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="TextBox8"</span><span style="COLOR: #ff0000">&nbsp;runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000">&nbsp;Text</span><span style="COLOR: #0000ff">='&lt;%#&nbsp;</span><span style="COLOR: #ff0000">Bind("Homephone")&nbsp;%</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">'&nbsp;Value="-"&gt;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">asp:TextBox</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:RequiredFieldValidator&nbsp;</span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="RequiredFieldValidator12"</span><span style="COLOR: #ff0000">&nbsp;runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000">&nbsp;ControlToValidate</span><span style="COLOR: #0000ff">="TextBox8"</span><span style="COLOR: #ff0000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ErrorMessage</span><span style="COLOR: #0000ff">="*"</span><span style="COLOR: #ff0000">&nbsp;SetFocusOnError</span><span style="COLOR: #0000ff">="True"</span><span style="COLOR: #0000ff">&gt;&lt;/</span><span style="COLOR: #800000">asp:RequiredFieldValidator</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">InsertItemTemplate</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">ItemTemplate</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #800000">asp:Label&nbsp;</span><span style="COLOR: #ff0000">ID</span><span style="COLOR: #0000ff">="Label8"</span><span style="COLOR: #ff0000">&nbsp;runat</span><span style="COLOR: #0000ff">="server"</span><span style="COLOR: #ff0000">&nbsp;Text</span><span style="COLOR: #0000ff">='&lt;%#&nbsp;</span><span style="COLOR: #ff0000">Bind("Homephone")&nbsp;%</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000">'&gt;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">asp:Label</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #000000"><br><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">&lt;/</span><span style="COLOR: #800000">ItemTemplate</span><span style="COLOR: #0000ff">&gt;</span></div>
<br>上面，我就是为TextBox8设置了一个默认的属性为"-"，这样别人不想输入电话的时候，就不用输入了。
<img src ="http://www.cnblogs.com/luyu/aggbug/417949.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41929/" target="_blank">[新闻]阿里巴巴利润增1.36倍</a>]]></description></item></channel></rss>