<?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>Meawznoy &#187; select all</title>
	<atom:link href="http://minib0x.com/blog/tag/select-all/feed/" rel="self" type="application/rss+xml" />
	<link>http://minib0x.com/blog</link>
	<description>• How CuTe ma SweetE MeawzZ~ •</description>
	<lastBuildDate>Mon, 28 Jun 2010 08:19:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[ASP.net+VB] การทำ Select All / Unselect All ใน GridView</title>
		<link>http://minib0x.com/blog/2009/04/aspnetvb-select-all-gridview/</link>
		<comments>http://minib0x.com/blog/2009/04/aspnetvb-select-all-gridview/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 16:28:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ASP.net+VB]]></category>
		<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[checkbox]]></category>
		<category><![CDATA[gridview]]></category>
		<category><![CDATA[select all]]></category>
		<category><![CDATA[select checkbox gridview]]></category>

		<guid isPermaLink="false">http://minib0x.com/blog/?p=601</guid>
		<description><![CDATA[หลังจากคราวที่แล้ว ได้ทำการสร้าง CheckBox ใน GridView เพื่อแสดงข้อมูลจากฐานข้อมูลแล้ว [ASP.net+VB] สร้าง CheckBox ใน GridView มาคราวนี้ ก็จะมาเพิ่มเติมลูกเล่นให้กับ GridView โดยที่ Header ของ GridView นี้ จะให้สามารถ Select All และ Unselect All ได้ แบบนี้ เลือก Edit Header Template เพื่อไปสร้าง Event ให้กับ CheckBox ที่ Header ของ GridView เลือก Event CheckedChange ของ CheckBox ที่เป็น Header Template พิมพ์โค้ดตามนี้้ If CType(GridView1.HeaderRow.FindControl("chkHeader"), CheckBox).Checked Then Dim i As [...]]]></description>
			<content:encoded><![CDATA[<p>หลังจากคราวที่แล้ว ได้ทำการสร้าง CheckBox ใน GridView เพื่อแสดงข้อมูลจากฐานข้อมูลแล้ว</p>
<h3><a href="http://minib0x.com/blog/2009/04/aspnetvb-checkbox-gridview/">[ASP.net+VB] สร้าง CheckBox ใน GridView</a></h3>
<p>มาคราวนี้ ก็จะมาเพิ่มเติมลูกเล่นให้กับ GridView</p>
<p>โดยที่ Header ของ GridView นี้ จะให้สามารถ Select All และ Unselect All ได้</p>
<p>แบบนี้</p>
<p style="text-align: center;"><img class="aligncenter" title="aspnet-gridview-selectall-03" src="http://minib0x.com/blog/wp-content/uploads/2009/04/aspnet-gridview-selectall-03.png" alt="aspnet-gridview-selectall-03" /></p>
<ol>
<li>เลือก Edit Header Template เพื่อไปสร้าง Event ให้กับ CheckBox ที่ Header ของ GridView</li>
<p><img title="aspnet-gridview-selectall-01" src="http://minib0x.com/blog/wp-content/uploads/2009/04/aspnet-gridview-selectall-01.png" alt="aspnet-gridview-selectall-01" /></p>
<li>เลือก Event CheckedChange ของ CheckBox ที่เป็น Header Template</li>
<p><img title="aspnet-gridview-selectall-02" src="http://minib0x.com/blog/wp-content/uploads/2009/04/aspnet-gridview-selectall-02.png" alt="aspnet-gridview-selectall-02" /></p>
<li>พิมพ์โค้ดตามนี้้</li>
<p><code> If CType(GridView1.HeaderRow.FindControl("chkHeader"), CheckBox).Checked Then<br />
Dim i As Integer<br />
For i = 0 To GridView1.Rows.Count - 1<br />
Dim gvRow As GridViewRow = gvTransfer.Rows(i)<br />
CType(gvRow.FindControl("chkItem"), CheckBox).Checked = True<br />
Next<br />
Else<br />
Dim i As Integer<br />
For i = 0 To GridView1.Rows.Count - 1<br />
Dim gvRow As GridViewRow = GridView1.Rows(i)<br />
CType(gvRow.FindControl("chkItem"), CheckBox).Checked = False<br />
Next<br />
End If</code></p>
<li>ลองรันดู จะพบว่า ยังไม่สามารถทำได้</li>
<p><img title="aspnet-gridview-selectall-03-1" src="http://minib0x.com/blog/wp-content/uploads/2009/04/aspnet-gridview-selectall-03-1.png" alt="aspnet-gridview-selectall-03-1" /></p>
<li>แต่อย่าเพิ่งตกใจไป เนื่องจาก CheckBox นั้น <strong>AutoPostBack</strong> มันจะมีค่า Default เป็น False ซึ่งทำให้ เมื่อเราคลิกแล้ว โค้ดที่เขียนจะยังไม่ทำงาน ดังนั้นจึงต้องเปลี่ยน จาก False เป็น True ซะ เพื่อให้การคลิก CheckBox นั้น เกิดการ PostBack<em> (ถ้างงว่า PostBack คืออะไร ให้<a href="http://minib0x.com/blog/2009/04/internship-13/">อ่านที่นี่</a>)</em></li>
<p><img title="aspnet-gridview-selectall-04" src="http://minib0x.com/blog/wp-content/uploads/2009/04/aspnet-gridview-selectall-04.png" alt="aspnet-gridview-selectall-04" /></ol>
<p><br class="spacer_" /></p>
<p><span style="color: #ff6600;"><span style="font-size: medium;"><strong>รายละเอียดเพิ่มเติม เกี่ยวกับโค้ดตัวอย่าง</strong></span></span></p>
<p>เนื่องจากการสร้าง CheckBox ในครั้งนี้เป็นการสร้างใน GridView ดังนั้นจึงไม่สามารถเรียกใช้งานได้โดยตรง<br />
จึงต้องเรียกผ่านทางฟังก์ชัน <strong>FindControl</strong><br />
ซึ่งเริ่มต้น เราต้องหา CheckBox ตัวที่เป็น Header ก่อน โดยใช้คำสั่งว่า<br />
<em>ชื่อGridView</em>.HeaderRow.FindControl[<em>ชื่อ ID ของ control ที่ต้องการค้นหา</em>]<br />
ถ้าพิมพ์แค่นี้จะเป็นแค่ expression ต้องทำการ Convert เป็นประเภทเดียวกับ Control ที่เราหา โดยใช้ฟังก์ชัน CType<br />
เช่น CType(GridView1.HeaderRow.FindControl(&#8220;chkHeader&#8221;), CheckBox)</p>
<p>สำหรับ CheckBox ที่เป็น Item Template นั้น ใช้คำสั่งว่า<br />
<em>ชื่อGridView</em>.Row(i).FindControl[<em>ชื่อIDของcontrol</em>]</p>
]]></content:encoded>
			<wfw:commentRss>http://minib0x.com/blog/2009/04/aspnetvb-select-all-gridview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
