﻿<?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/AntiGameZ/</link><description>我的学习笔记</description><language>zh-cn</language><lastBuildDate>Thu, 28 Aug 2008 16:09:07 GMT</lastBuildDate><pubDate>Thu, 28 Aug 2008 16:09:07 GMT</pubDate><ttl>60</ttl><item><title>[LINQ]数据存在时Update，不存在则Insert</title><link>http://www.cnblogs.com/AntiGameZ/archive/2008/08/03/1259417.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Sun, 03 Aug 2008 12:43:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2008/08/03/1259417.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/1259417.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2008/08/03/1259417.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/1259417.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/1259417.html</trackback:ping><description><![CDATA[<p>最近帮朋友做一个报名站，非常简单，于是拿.NET 3.5特别是LINQ to SQL来练练手。</p>
<p>一切顺利，唯独遇到一个小问题：有些记录，我只想每个用户在数据库中只拥有一条记录，如果数据库中已经存在记录，则用新的内容对原数据UPDATE，没有的话则INSERT。利用异常处理走了个小偏门，感觉不能算是正统的办法，希望哪位看到给指导一下。<br />
</p>
<p><br />
</p>
<p>代码如下：</p>
<div class="cnblogs_code"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;1</span><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">partial</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;Test&nbsp;:&nbsp;System.Web.UI.Page<br />
</span><span style="color: #008080;">&nbsp;2</span><span style="color: #000000;"><img id="Codehighlighter1_47_893_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_47_893_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_47_893_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_47_893_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_47_893_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_47_893_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_47_893_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_47_893_Open_Text').style.display='inline';" align="top"></span><span id="Codehighlighter1_47_893_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_47_893_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" alt="" align="top" /></span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;InsertOrUpdateDate()<br />
</span><span style="color: #008080;">&nbsp;4</span><span style="color: #000000;"><img id="Codehighlighter1_85_893_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_85_893_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_85_893_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_85_893_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_85_893_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_85_893_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_85_893_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_85_893_Open_Text').style.display='inline';" align="top"></span><span id="Codehighlighter1_85_893_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_85_893_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;5</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;GraduateRegisterDataContext&nbsp;context&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;GraduateRegisterDataContext(StaticData.ConnectionString);<br />
</span><span style="color: #008080;">&nbsp;6</span><span style="color: #000000;"><img id="Codehighlighter1_199_357_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_199_357_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_199_357_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_199_357_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_199_357_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_199_357_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_199_357_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_199_357_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;</span><span id="Codehighlighter1_199_357_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_199_357_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;7</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;记录存在，检索后修改ProvinceOf值为2</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;8</span><span style="color: #008000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FamilyInfo&nbsp;family&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;context.FamilyInfo.Single(f&nbsp;</span><span style="color: #000000;">=&gt;</span><span style="color: #000000;">&nbsp;f.NationalId&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">3</span><span style="color: #800000;">"</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;family.ProvinceOf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">200</span><span style="color: #800000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span><span style="color: #000000;"><img id="Codehighlighter1_401_838_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_401_838_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_401_838_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_401_838_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_401_838_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_401_838_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_401_838_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_401_838_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(InvalidOperationException&nbsp;inex)&nbsp;</span><span id="Codehighlighter1_401_838_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_401_838_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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;记录不存在，触发InvalidOperationException异常，创建新对象后插入</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">13</span><span style="color: #008000;"><img id="Codehighlighter1_502_780_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_502_780_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_502_780_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_502_780_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_502_780_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_502_780_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_502_780_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_502_780_Open_Text').style.display='inline';" align="top"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FamilyInfo&nbsp;family&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;FamilyInfo&nbsp;</span><span id="Codehighlighter1_502_780_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_502_780_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Address&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ApplyReason&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CityOf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NationalId&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">3</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">18</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DistrictOf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">19</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FinacialStatus&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">,<br />
</span><span style="color: #008080;">20</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IsApplyGrant&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ZipCode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</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" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ProvinceOf&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">23</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">24</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.FamilyInfo.InsertOnSubmit(family);<br />
</span><span style="color: #008080;">25</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">26</span><span style="color: #000000;"><img id="Codehighlighter1_851_891_Open_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_851_891_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_851_891_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_851_891_Closed_Text').style.display='inline';" align="top"><img id="Codehighlighter1_851_891_Closed_Image" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_851_891_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_851_891_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_851_891_Open_Text').style.display='inline';" align="top">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">finally</span><span style="color: #000000;">&nbsp;</span><span id="Codehighlighter1_851_891_Closed_Text" style="border: 1px solid #808080; background-color: #ffffff; display: none;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_851_891_Open_Text"><span style="color: #000000;">{<br />
</span><span style="color: #008080;">27</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.SubmitChanges();<br />
</span><span style="color: #008080;">28</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000;"><br />
</span><span style="color: #008080;">29</span><span style="color: #000000;"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span></span></div>
<p>&nbsp;</p><img src ="http://www.cnblogs.com/AntiGameZ/aggbug/1259417.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>隐藏TreeView中SiteMap的根节点</title><link>http://www.cnblogs.com/AntiGameZ/archive/2006/12/31/608424.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Sat, 30 Dec 2006 16:56:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2006/12/31/608424.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/608424.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2006/12/31/608424.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/608424.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/608424.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">SiteMapDataSource.ShowStartingNode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span></div>
<br>就这样...解决了。<br><br><img src ="http://www.cnblogs.com/AntiGameZ/aggbug/608424.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41939/" target="_blank">[新闻]搜狗五笔输入法发布</a>]]></description></item><item><title>典型的三行二列居中高度自适应布局</title><link>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/608255.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Sat, 30 Dec 2006 13:13:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/608255.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/608255.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/608255.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/608255.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/608255.html</trackback:ping><description><![CDATA[原文连接：http://www.w3cn.org/article/layout/2004/88.html
<br><br>
<p>如何使整个页面内容居中，如何使高度适应内容自动伸缩。这是学习CSS布局最常见的问题。下面就给出一个实际的例子，并详细解释。（本文的经验和是蓝色理想论坛xpoint、guoshuang共同讨论得出的。）</p>
<p>首先先<a href="http://www.w3cn.org/article/layout/2004/3h2l.html" target="new">按这里看实际运行效果</a>，这个页面在mozilla、opera和IE浏览器中均可以实现居中和高度自适应。我们来分析代码：</p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">style&nbsp;</span><span style="color: #ff0000;">type</span><span style="color: #0000ff;">="text/css"</span><span style="color: #0000ff;">&gt;</span><span style="background-color: #f5f5f5; color: #800000;"><br>body</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">#999</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">center</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>color</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#333</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>font-family</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">arial,verdana,sans-serif</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br>#header</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">776px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-right</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-left</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#EEE</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>height</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">60px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">left</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">&nbsp;#contain</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-right</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-left</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;776px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;">&nbsp;#mainbg</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">776px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#60A179</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>float</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;left</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br>#right</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>float</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;right</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;2px&nbsp;0px&nbsp;2px&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;574px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#ccd2de</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">left</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br>#left</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>float</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;left</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;2px&nbsp;2px&nbsp;0px&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#F2F3F7</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;200px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>text-align</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">left</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br></span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br>#footer</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>clear</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">both</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>width</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">776px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-right</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>margin-left</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;auto</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>background</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">&nbsp;#EEE</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;"><br>height</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">60px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br>.text</span><span style="background-color: #f5f5f5; color: #000000;">{</span><span style="background-color: #f5f5f5; color: #ff0000;">margin</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">0px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #ff0000;">padding</span><span style="background-color: #f5f5f5; color: #000000;">:</span><span style="background-color: #f5f5f5; color: #0000ff;">20px</span><span style="background-color: #f5f5f5; color: #000000;">;</span><span style="background-color: #f5f5f5; color: #000000;">}</span><span style="background-color: #f5f5f5; color: #800000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">style</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">head</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="header"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">header</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="contain"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="mainbg"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="right"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div<br></span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="text"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">right</span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">1</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">p</span><span style="color: #0000ff;">&gt;&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="left"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">class</span><span style="color: #0000ff;">="text"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">left</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;</span><span style="color: #800000;">div&nbsp;</span><span style="color: #ff0000;">id</span><span style="color: #0000ff;">="footer"</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;">footer</span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">div</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">body</span><span style="color: #0000ff;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">&lt;/</span><span style="color: #800000;">html</span><span style="color: #0000ff;">&gt;</span></div>
<br><img alt="" src="http://www.w3cn.org/article/layout/2004/images/3h2l.gif"><br><br>
<p>首先我们定义body和顶部第一行#header，这里面的关键是body中的text-align:center;和header中的margin-right: auto;margin-left: auto;，通过这两句使得header居中。注：其实定义text-align:center;就已经在IE中实现居中，但在mozilla中无效，需要设置margin:auto;才可以实现mozilla中的居中。</p>
<p>接下来定义中间的两列#right和#left。为了使中间两列也居中，我们在它们外面嵌套一个层#contain，并对contain设置margin:auto;，这样#right和#left就自然居中了。</p>
<p>注意中间两列定义的顺序，我们首先定义#right，通过float: right;让它浮在#contain层的最右边。然后再定义#left，通过float: left;让它浮动在#right层的左面。这和我们以前表格从左到右定义的顺序正好相反(更正：先左后右、还是先右后左都可以实现，根据自己需要设计)。</p>
<p>我们看到代码中在#contain和两列之间还嵌套了一个层#mainbg，这个层是做什么用的呢？这个层就是用来定义#contain的背景的。
你肯定会问，为什么不直接在#contain中定义背景，而要多套一层呢？那是因为在#contain中直接定义的背景，在mozilla中将显示不出
来，必须定义高度值才可以。如果定义了高度值，#right层就无法实现根据内容的自动伸缩。为了解决背景和高度问题，就必须增加这么一个#mainbg
层。窍门在于#mainbh这个层定义float: left;，因为float使层自动有宽和高的属性。(暂且这么理解：)</p>
<p>最后是定义底部的#footer层。这个定义的关键是：clear:both;，这一句话的作用是取消#footer层的浮动继承。否则的话，你会看到#footer紧贴着#header显示，而不是在#right的下面。</p>
<p>主要的层定义完毕，这个布局就ok了。补充一点：你看到我还定义了一个.text{margin:0px;padding:20px;}，
这个class的作用是使内容的外围有20px的空白。为什么不直接在#right里定义margin或者padding呢，因为mozilla和IE对
css盒模型的解释不一致，直接定义margin/padding会造成mozilla里布局变形。我一般采用内部再套一层的做法来解决。</p>
<br><br> <img src ="http://www.cnblogs.com/AntiGameZ/aggbug/608255.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>XML结合DropDownList控件实现联动下拉菜单</title><link>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607512.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Fri, 29 Dec 2006 16:16:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607512.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/607512.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607512.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/607512.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/607512.html</trackback:ping><description><![CDATA[摘要:  也许是之前被DropDownList折磨惨了，这两天时不时的都要研究下这个小玩意，今天写SiteMap的时候想起来DDL能和XMLDataSource绑定，不知道折腾起来怎么样。当然，DDL也可以直接和SiteMapDateSource进行绑定，但是我就不采用这个方法了。XML文件，太长，折叠了一下，展开察看：Code highlighting produced by Actipro CodeH&nbsp;&nbsp;<a href='http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607512.html'>阅读全文</a><img src ="http://www.cnblogs.com/AntiGameZ/aggbug/607512.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>在.net 中依据页的角色验证方式产生相匹配的菜单</title><link>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607507.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Fri, 29 Dec 2006 16:03:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607507.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/607507.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2006/12/30/607507.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/607507.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/607507.html</trackback:ping><description><![CDATA[<p>看了很多人都是自己程序获得用户的角色权限，再判断并编写相应的功能菜单，其实.net 中可以允许开发者自己拼合这些功能；<br>废话不说，网上也有很多这样的资料，但我感觉说教太多，自己来简单归纳一下方便给大家！<br><br>注：站点必须为asp.net 标准验证方式。自定义cookie认证,自定义Session方式的可以一边凉快去了！<br><br>具体条件<br>&nbsp;&nbsp;&nbsp;1、为站点准备SiteMap<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在站点根目录建立一个Web.sitemap 配置文件，例：</p>
<p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&lt;?</span><span style="color: #000000;">xml&nbsp;version</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">1.0</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;encoding</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">utf-8</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">?&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;"></span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMap&nbsp;xmlns</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">http://schemas.microsoft.com/AspNet/SiteMap-File-1.0</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Default.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">首页</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Register.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">注册</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Login.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">登陆</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Album/Default.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">个人管理</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Album/AlbumManager.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">相册管理</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Album/ImageUploader.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">图片上传</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMapNode&nbsp;url</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">~/Album/ImageManager.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;title</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">图片管理</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">""</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">siteMapNode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">siteMapNode</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"></span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">siteMap</span><span style="color: #000000;">&gt;</span></div>
<br></p>
<p>注意：第一级节点只能有1个，其他节点就随意了，可以把全站所有有关的页都编写进来，也可以只写有权限&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 控制相关的页，这个是可以继承的。<br>&nbsp;&nbsp;&nbsp;安装有MSDN2005的朋友可以看此内容：ASP.NET 站点地图<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/6b85a558-1df8-44cf-bea6-62e61bcc8d20.htm">ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/6b85a558-1df8-44cf-bea6-62e61bcc8d20.htm<br></a>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;2、为文件或目录设置访问权限<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在相关目录的Web.config 中设置就可以，跟平时设置一样</p>
<p>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&lt;</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">authorization</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;!--</span><span style="color: #000000;">&nbsp;当前目录由Album&nbsp;角色的用户才可以访问&nbsp;</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">allow&nbsp;roles</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Album</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">deny&nbsp;users&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">authorization</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;<br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">location&nbsp;path</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">ImageUploader.aspx</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">authorization</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;!--</span><span style="color: #000000;">&nbsp;ImageUploader.aspx&nbsp;只能带Blog角色的用户才可以访问&nbsp;</span><span style="color: #000000;">--&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">allow&nbsp;roles</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Blog</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">deny&nbsp;users&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">*</span><span style="color: #000000;">"</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">authorization</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">location</span><span style="color: #000000;">&gt;</span></div>
<br></p>
<br>&nbsp;&nbsp;&nbsp;3、在根Web.config 中启用站点地图角色过滤配置，想省事可以直接复制粘贴<br>
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">siteMap&nbsp;defaultProvider</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">XmlSiteMapProvider</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;enabled</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">true</span><span style="color: #000000;">"</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">providers</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">add&nbsp;name</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">XmlSiteMapProvider</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;description</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Default&nbsp;SiteMap&nbsp;provider.</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">System.Web.XmlSiteMapProvider&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;siteMapFile</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">Web.sitemap</span><span style="color: #000000;">"</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;securityTrimmingEnabled</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">true</span><span style="color: #000000;">"</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">/&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">providers</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">siteMap</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">&lt;/</span><span style="color: #000000;">system.web</span><span style="color: #000000;">&gt;</span><span style="color: #000000;"><br></span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;"></span></div>
<br>
<br>就这样就OK了！测试一把~~！<br><br>&nbsp;&nbsp;&nbsp;1、拖一个Menu 控件到页面上，并新建一个数据源类型为&#8220;站点地图&#8221;类型，名字随意。点OK就配置好了！<br><br>&nbsp;&nbsp;&nbsp;&nbsp;测试用例1：（没有登陆以前，只显示根目录下谁都可以访问的文件）<br>&nbsp;&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/sunboy/1.gif" border="0" height="71" width="123"><br>&nbsp;&nbsp;&nbsp;测试用例2：（登陆后，具备Album 角色但不具备Blog 角色能力）<br>&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/sunboy/3.GIF" border="0" height="81" width="176"><br>&nbsp;&nbsp;&nbsp;测试用例3：（登陆后，具备Album角色也具备Blog 角色）<br>&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.cnblogs.com/images/cnblogs_com/sunboy/2.GIF" border="0" height="103" width="177"><br><br>完成收工，回家了，显然这样的方式，大量减少的代码，而且把页面文件或目录跟角色绑定起来，实在是非常方便的。<br><img src ="http://www.cnblogs.com/AntiGameZ/aggbug/607507.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41938/" target="_blank">[新闻]新学年开始 大学生适用的十大互联网应用</a>]]></description></item><item><title>终于搞定了DropDownList</title><link>http://www.cnblogs.com/AntiGameZ/archive/2006/12/28/605571.html</link><dc:creator>AntiGameZ</dc:creator><author>AntiGameZ</author><pubDate>Wed, 27 Dec 2006 21:50:00 GMT</pubDate><guid>http://www.cnblogs.com/AntiGameZ/archive/2006/12/28/605571.html</guid><wfw:comment>http://www.cnblogs.com/AntiGameZ/comments/605571.html</wfw:comment><comments>http://www.cnblogs.com/AntiGameZ/archive/2006/12/28/605571.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/AntiGameZ/comments/commentRss/605571.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/AntiGameZ/services/trackbacks/605571.html</trackback:ping><description><![CDATA[<p>从晚上九点到现在，10个多小时了，终于把DropListDown的问题搞定。<br><br>用FormView做了一个Movie的添加页面，其中Category的添加是用DropDownList做的，DropDownList控件绑定了Category表。一开始不知道为什么，选定了Category，填完了数据，却总是报错说Category字段不能为NULL。自己研究许久无功而返，无意之中还是在博克园看到一篇文章：&#8220;<a href="http://truly.cnblogs.com/archive/2006/06/29/438526.html#topic4" target="_blank">ASP.NET 2.0中的数据操作::定制数据修改界面</a>&#8221;，终于明白：<br></p>
<blockquote>
<p>此外，如果点击更新，你会发现该产品的CategoryID 和 SupplierID都变成了NULL。这些都是由于EditItemTemplate模板中的下拉框没有根据数据库中的实际数据进行绑定。</p>
<p>为DropDownList绑定CategoryID 和 SupplierID 数据。<br><br>为了使product编辑状态下的category和supplier下拉列表选中实际数据，并使其可以根据用户选择调用BLL的UpdateProduct方法对数据库进行更新，我们需要对两个下拉框的SelectedValue分别绑定到CategoryID 和 SupplierID。例如对于Categories下拉框，我们直接在元素标记中增加SelectedValue='&lt;%# Bind("CategoryID") %&gt;'。<br><br>另一种做法是在设计器中，通过下拉框的智能标记，点击&#8220;编辑DataBinding&#8221;链接，设置编辑模板中的下拉框的数据绑定。接下来，用双重模式指定SelectedValue绑定到CategoryID字段（见图10）。重复上面的方法之一，为Suppliers下拉框绑定SupplierID 数据。 </p>
</blockquote>终于恍然大悟，问题就出在这个&#8220;双向数据绑定上&#8221;。<br><br>花了10个小时搞定这么一个小问题实在效率低下，不过终究是解决了，一宿没睡，好歹有了一个交待。同时也准备积极启用博客园的这个博客作为自己的技术仓库。&nbsp;<img src ="http://www.cnblogs.com/AntiGameZ/aggbug/605571.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41937/" target="_blank">[新闻]Google拟在9月发布自有浏览器 或采用火狐内核</a>]]></description></item></channel></rss>