<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>آرایه &#187; gridview</title>
	<atom:link href="http://www.saeedifard.com/tag/gridview/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.saeedifard.com</link>
	<description>نوشته‌ های حامد سعیدی فرد درباره فناوری اطلاعات و کارآفرینی</description>
	<lastBuildDate>Thu, 02 Feb 2012 06:47:22 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Custom Paging در GridView به کمک LINQ</title>
		<link>http://www.saeedifard.com/1388/05/custom-paging-in-gridview-using-linq/</link>
		<comments>http://www.saeedifard.com/1388/05/custom-paging-in-gridview-using-linq/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 08:41:30 +0000</pubDate>
		<dc:creator>حامد سعیدی فرد</dc:creator>
				<category><![CDATA[برنامه نویسی]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[custom paging]]></category>
		<category><![CDATA[gridview]]></category>
		<category><![CDATA[LINQ]]></category>

		<guid isPermaLink="false">http://www.saeedifard.com/1388/05/custom-paging-in-gridview-using-linq/</guid>
		<description><![CDATA[&#160;دریافت کد این نوشته&#160; LINQ چیست؟ LINQ که سرنام Language Integrated Query است یک روش جدید در دات نت برای انجام پرس و جو روی انواع داده‌هاست. برای آشنایی بیشتر با LINQ مطالب زیر را که نوشته حامد بنایی است مطالعه کنید: + LINQ بخش اول + LINQ بخش دوم – LINQ to SQL Custom [...]<p><hr />
<script type="text/javascript" src="http://anetwork.ir/showad/?adwidth=468&adheight=60&aduser=1293700559"></script>
</p>
]]></description>
			<content:encoded><![CDATA[<p align="justify"><a href="http://www.saeedifard.com/wp-content/uploads/2009/08/download.png"><strong></strong></a><a href="http://www.saeedifard.com/files/GridView-CustomPaging.rar" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="download" border="0" alt="download" align="right" src="http://www.saeedifard.com/wp-content/uploads/2009/08/download1.png" width="24" height="24" /></a></a></a><strong>&#160;</strong><a href="http://www.saeedifard.com/files/GridView-CustomPaging.rar" target="_blank">دریافت کد این نوشته</a>&#160; </p>
<p><strong>LINQ چیست؟      <br /></strong>LINQ که سرنام Language Integrated Query است یک روش جدید در دات نت برای انجام پرس و جو روی انواع داده‌هاست.     <br />برای آشنایی بیشتر با LINQ مطالب زیر را که نوشته <a rel="nofollow" href="http://www.hamedb.com/" target="_blank">حامد بنایی</a> است مطالعه کنید:     <br />+ <a rel="nofollow" href="http://www.hamedb.com/fa/posts/items/linq_part1_870823.aspx" target="_blank">LINQ بخش اول</a>     <br />+ <a rel="nofollow" href="http://www.hamedb.com/fa/posts/items/linq_part2_870830.aspx" target="_blank">LINQ بخش دوم – LINQ to SQL</a></p>
<p align="justify"><strong>Custom Paging چیست؟      <br /></strong>در دات نت وقتی بخواهیم لیستی از اطلاعات را نشان بدهید از کنترل‌هایی نظیر GridView استفاده می‌کنیم. اگر تعداد رکوردها زیاد باشد از قابلیت paging در GridView استفاده می‌شود. به کمک paging رکوردها در صفحاتی که سایزشان را مشخص می‌کنیم نمایش داده می‌شوند. </p>
<p align="center"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Gridview Paging" border="0" alt="Gridview Paging" src="http://www.saeedifard.com/wp-content/uploads/2009/08/PagingGridView.gif" width="346" height="336" /> </p>
<p align="justify">به طور پیش فرض در paging عادی تمام رکوردها از بانک اطلاعاتی دریافت می‌شوند و در هر صفحه فقط بخشی از رکوردها که مورد نیاز هستند نمایش داده می‌شوند. Custom Paging یک روش سفارشی برای انجام صفحه بندی است که در آن در هر صفحه از GridView فقط رکوردهای مربوط به همان صفحه از بانک اطلاعاتی دریافت می‌شوند.    <br />به عنوان مثال فرض کنید ما ۱۰۰ رکورد داریم و می‌خواهیم آن‌ها را در یک GridView صفحه بندی کنیم. سایز صفحات را هم ۲۰ رکورد در نظر گرفته‌ایم، بنابراین ۵ صفحه خواهیم داشت. در روش paging‌ عادی وقتی در حال تماشای صفحه دوم هستیم (رکوردهای ۲۱ تا ۴۰) تمام ۱۰۰ رکورد از بانک اطلاعاتی دریافت می‌شود ولی فقط رکوردهای ۲۱ تا ۴۰ در GridView‌ نمایش داده می‌شوند.     <br />در روش Custom Paging اما در صفحه دوم فقط رکوردهایی که نیاز داریم نمایش داده بشوند (رکوردهای ۲۱ تا ۴۰) از بانک اطلاعاتی دریافت می‌شوند. این یک روش بهینه است و البته کارآیی و سرعت برنامه را به خصوص در حجم اطلاعات بالا بسیار افزایش می‌دهد.</p>
<p><strong>Custom Paging به کمک LINQ </strong>    <br />قبل از هر چیز Visual Studio‌ را باز کنید و یک Web Site جدید بسازید.     <br />ابتدا فرض می‌کنیم یک جدول در بانک اطلاعاتی به نام City‌ داریم با دو فیلد CityId از نوع int و CityName‌ از نوعnvarchar 50 . حالا یک LINQ to SQL Class به نام City می‌سازیم و جدول City را از بانک اطلاعاتی به آن اضافه می‌کنیم:</p>
<p align="center"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="City Table" border="0" alt="City Table" src="http://www.saeedifard.com/wp-content/uploads/2009/08/dbtable.jpg" width="219" height="141" /></p>
<p align="right">در پوشه App_Code وب سایت یک کلاس جدید به نام CityClass ایجاد می‌کنیم. در این کلاس می‌خواهیم متدهای لازم برای Custom Paging را به شرح زیر بنویسیم:</p>
<pre style="text-align: left; direction: ltr" class="code"><span style="color: blue">    public </span><span style="color: #2b91af">IQueryable </span>BindGrid(<span style="color: blue">int </span>startRowIndex, <span style="color: blue">int </span>maximumRows)
    {
        <span style="color: #2b91af">CityDataContext </span>db = <span style="color: blue">new </span><span style="color: #2b91af">CityDataContext</span>();
        <span style="color: blue">var </span>query = <span style="color: blue">from </span>c <span style="color: blue">in </span>db.Cities <span style="color: blue">select </span>c;
        <span style="color: blue">return </span>query.Skip(startRowIndex).Take(maximumRows);
    }

    <span style="color: blue">public int </span>GetCityCount()
    {
        <span style="color: #2b91af">CityDataContext </span>db = <span style="color: blue">new </span><span style="color: #2b91af">CityDataContext</span>();
        <span style="color: blue">return </span>(<span style="color: blue">from </span>c <span style="color: blue">in </span>db.Cities <span style="color: blue">select </span>c).Count();
    }</pre>
<p align="right">حالا می‌رسیم به بخش نمایش کار. یک GridView و یک ObjectDataSource به صفحه‌مان اضافه می‌کنیم.<br />
  <br />Enable Paging کنترل GridView را علامت بزنید و Datasource آن را ObjectDataSource1 انتخاب کنید</p>
<p align="right"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Gridview Config" border="0" alt="Gridview Config" src="http://www.saeedifard.com/wp-content/uploads/2009/08/gridviewconfig.png" width="411" height="207" /></p>
<p align="justify">حالا نوبت به تنظیم ObjectDataSource‌ می‌رسد. TypeName همان نام کلاسی که قبلاً ایجاد کردیم یعنی CityClass، همچنین نام دو متدی را که در CityClass نوشته بودیم به عنوان SelectCountMethod و SelectMethod اضافه می‌کنیم. فراموش نکنید که Enable Paging را هم true کنید.</p>
<pre style="text-align: left; direction: ltr" class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">asp</span><span style="color: blue">:</span><span style="color: #a31515">ObjectDataSource </span><span style="color: red">ID</span><span style="color: blue">=&quot;ObjectDataSource1&quot; </span><span style="color: red">runat</span><span style="color: blue">=&quot;server&quot;
        </span><span style="color: red">EnablePaging</span><span style="color: blue">=&quot;true&quot; </span><span style="color: red">SelectCountMethod</span><span style="color: blue">=&quot;GetCityCount&quot;
        </span><span style="color: red">SelectMethod</span><span style="color: blue">=&quot;BindGrid&quot; </span><span style="color: red">TypeName</span><span style="color: blue">=&quot;CityClass&quot; /&gt;</span></pre>
<p><a rel="nofollow" href="http://11011.net/software/vspaste"></a><a rel="nofollow" href="http://11011.net/software/vspaste"></a></p>
<p>تمام شد! سایت را اجرا کنید و نتیجه کار را ببینید.</p>
<a href="http://www.idevcenter.com/links/vote?url=http%3A%2F%2Fwww.saeedifard.com%2F1388%2F05%2Fcustom-paging-in-gridview-using-linq%2F" class="idc-vote-anchor">
            <img src="http://www.idevcenter.com/links/image?url=http%3A%2F%2Fwww.saeedifard.com%2F1388%2F05%2Fcustom-paging-in-gridview-using-linq%2F" alt="Vote on iDevCenter" title="Vote on iDevCenter" class="idc-vote-image" />
	    		</a>
<p><hr />
<script type="text/javascript" src="http://anetwork.ir/showad/?adwidth=468&adheight=60&aduser=1293700559"></script>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.saeedifard.com/1388/05/custom-paging-in-gridview-using-linq/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

