0% found this document useful (0 votes)
24 views

Asp Net ch05 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views

Asp Net ch05 Final

asp

Uploaded by

Mahmoud
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻓﺼﻞ ﭘﻨﺠﻢ ‪:‬‬


‫ﺑﺮﺭﺳﯽ ﻭ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎﯼ ﻭﺍﺭﺩ ﺷﺪﻩ ﺍﺯ ﻃﺮﻑ ﮐﺎﺭﺑﺮ ﻭ ﻣﻮﺍﺭﺩ ﺗﻜﻤﻴﻠﻲ‬
‫ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﻭﺏ‬

‫ﻣﻘﺪﻣﻪ ‪:‬‬

‫ﺍﻳﻦ ﻓﺼﻞ ﺩﺭ ﺣﻘﻴﻘﺖ ﻗﺴﻤﺖ ﺩﻭﻡ ﻓﺼﻞ ﭘﻴﺸﻴﻦ ﻣـﻲ ﺑﺎﺷـﺪ‪ .‬ﺩﺭ ﻓﺼـﻞ ﺟـﺎﺭﻱ ﻣـﺮﻭﺭﻱ ﺧـﻮﺍﻫﻴﻢ ﺩﺍﺷـﺖ ﺑـﺮ‬
‫ﺑﺎﻗﻴﻤﺎﻧﺪﻩ ﻱ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﻣﻬﻢ ﺳﺮﻭﺭ ﻭﺏ ‪.‬‬

‫ﺍﺭﺯﻳﺎﺑﻲ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ‪:‬‬

‫ﻳﻜﻲ ﺍﺯ ﻣﻬﻤﺘﺮﻳﻦ ﻣﺮﺍﺣﻞ ﺩﺭﻳﺎﻓﺖ ﺩﺍﺩﻩ ﻫﺎ ﺍﺯ ﻛﺎﺭﺑﺮ ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﺍﻃﻤﻴﻨـﺎﻥ ﺣﺎﺻـﻞ ﻛﻨـﻴﻢ ﺁﻳـﺎ ﺩﺍﺩﻩ ﻫـﺎﻱ ﻭﺍﺭﺩ‬
‫ﺷﺪﻩ ﺍﺯ ﻃﺮﻑ ﺍﻭ ﻣﻌﺘﺒﺮ ﻫﺴﺘﻨﺪ ﻳﺎ ﺧﻴﺮ؟ ﺍﺻﻮﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺑﺪﻳﻦ ﺷﺮﺡ ﻣﻲ ﺑﺎﺷﻨﺪ‪ :‬ﺁﻳﺎ ﻛـﺎﺭﺑﺮ ﭼﻴـﺰﻱ ﺭﺍ ﻭﺍﺭﺩ‬
‫ﻛﺮﺩﻩ ﺍﺳﺖ ؟ ﺁﻳﺎ ﻧﻮﻉ ﺻﺤﻴﺤﻲ ﺍﺯ ﺩﺍﺩﻩ ﺭﺍ ﻭﺍﺭﺩ ﻛﺮﺩﻩ ﺍﺳﺖ ) ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺁﺩﺭﺱ ﺍﻳﻤﻴـﻞ ( ‪ .‬ﺁﻳـﺎ ﺩﺍﺩﻩ ﻭﺭﻭﺩﻱ ﺩﺭ‬
‫ﻳﻚ ﺑﺎﺯﻩ ﺧﺎﺹ ﻗﺮﺍﺭ ﺩﺍﺭﺩ؟ ﻭ ﺍﻣﺜﺎﻝ ﺍﻳﻨﻬﺎ‪.‬‬
‫‪ ASP.NET‬ﻳﻚ ﺳﺮﻱ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺍﺭﺯﻳﺎﺑﻲ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺭﺍ ﻗﺒﻞ ﺍﺯ ﺍﻳﻨﻜﻪ ﺩﺍﺩﻩ ﻫﺎ ﺑﻪ ﺳﺮﻭﺭ ﻓﺮﺳﺘﺎﺩﻩ‬
‫ﺷﻮﻧﺪ ‪ ،‬ﺩﺭ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﻣﻬﻴﺎ ﻛﺮﺩﻩ ﺍﺳﺖ ﻭ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﺑﺪﻭﻥ ﺩﺭﮔﻴﺮ ﺷﺪﻥ ﺳﺮﻭﺭ ﻭ ﺗﺤﻤﻴﻞ ﺑﺎﺭ ﺍﺿﺎﻓﻲ ﺑﻪ‬
‫ﺁﻥ ﺍﻳﻨﻜﺎﺭ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﺩ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪1‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺩﺭ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﺗﻮﺳﻂ ﻛﺘﺎﺑﺨﺎﻧﻪ ﺍﻱ ﻛﻪ ﺩﺭ ﻓﺎﻳﻞ ‪WebUIValidation.JS‬‬
‫ﻗﺮﺍﺭ ﺩﺍﺭﺩ ﻭ ﺑﻪ ﺻﻮﺭﺕ ﻣﺠﺰﺍ ﺑﺮ ﺭﻭﻱ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎﻱ ﻛﻼﻳﻨﺖ ﺩﺭﻳﺎﻓﺖ ﺧﻮﺍﻫﺪ ﺷـﺪ ‪ ،‬ﺻـﻮﺭﺕ ﻣـﻲ ﮔﻴـﺮﺩ‪ .‬ﻧﻜﺘـﻪ‬
‫ﺟﺎﻟﺐ ﺍﻳﻨﺠﺎ ﺍﺳﺖ ﻛﻪ ﺣﺘﻲ ﺍﮔﺮ ﺑﺪﻟﻴﻞ ﭘﺸﺘﻴﺒﺎﻧﯽ ﻧﮑﺮﺩﻥ ﻣﺮﻭﺭﮔﺮ ﻭﺏ ﮐﺎﺭﺑﺮ ﺍﺯ ‪ ) Jscript‬ﻧﮕﺎﺭﺵ ﻫﺎﻱ ﭘﺎﻳﻴﻦ ﺗـﺮ‬
‫ﺍﺯ ‪ ٤‬ﺍﻳﻨﺘﺮﻧﺖ ﺍﻛﺴﭙﻠﻮﺭﺭ ( ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺳﻤﺖ ﮐﻼﻳﻨﺖ ﻣﻬﻴﺎ ﻧﺒﻮﺩ‪ ،‬ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﻛﺎﺭ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺳﻤﺖ ﺳﺮﻭﺭ‬
‫ﻣﻬﻴﺎ ﻣﻲ ﮔﺮﺩﺩ ﻭ ﺩﺭ ﻫﺮ ﺣﺎﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺻﻮﺭﺕ ﺧﻮﺍﻫﺪ ﮔﺮﻓﺖ‪.‬‬
‫ﺩﺭ ﺟﺪﻭﻝ ﺯﻳﺮﺷﺶ ﻛﻨﺘﺮﻝ ﻣﻮﺟﻮﺩ ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ‪ ،‬ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﻧﺪ‪ .‬ﺍﻳﻦ‬
‫ﻧﻮﻉ ﻛﻨﺘﺮﻝ ﻫﺎ ﻣﻘﺪﺍﺭ ﻛﻨﺘﺮﻟﻲ ﺭﺍ ﻛﻪ ﺩﺭ ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﺁﻧﻬﺎ ﻣﺸﺨﺺ ﺷـﺪﻩ ﺍﺳـﺖ ﺭﺍ ﺑﺮﺭﺳـﻲ‬
‫ﻣﻲ ﻧﻤﺎﻳﻨﺪ‪.‬‬

‫ﺟﺪﻭﻝ ‪ -١‬ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺭ ‪. ASP.NET‬‬

‫ﻛﺎﺭﺑﺮﺩ‬ ‫ﻛﻨﺘﺮﻝ‬
‫ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﻛﻨﺘﺮﻝ ﺣﺎﻭﻱ ﺩﺍﺩﻩ ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ‪) .‬ﺁﻳﺎ ﮐﺎﺭﺑﺮ‬
‫‪RequiredFieldValidator‬‬
‫ﭼﻴﺰﯼ ﺭﺍ ﻭﺍﺭﺩ ﮐﺮﺩﻩ ﺍﺳﺖ ؟ (‬
‫ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺩﺍﺩﻩ ﻱ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﺎ ﺩﺍﺩﻩ ﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﻛﻨﺘﺮﻝ‬
‫‪CompareValidator‬‬
‫ﺩﻳﮕﺮ ﺗﻄﺎﺑﻖ ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ‪.‬‬
‫ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺁﻳﺘﻢ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﻴﻦ ﺩﻭ ﻣﻘﺪﺍﺭ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﻗﺮﺍﺭ‬
‫‪RangeValidator‬‬
‫ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ‪.‬‬
‫ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺩﺍﺩﻩ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﺎ ﻓﺮﻣﺖ ﻣﺸﺨﺺ ﺷﺪﻩ ﻣﻄﺎﺑﻘﺖ‬
‫‪RegularExpressionValidator‬‬
‫ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ‪.‬‬
‫ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﺭﺍ ﺗﻮﺳﻂ ﺍﺳﻜﺮﻳﭙﺘﻲ ﻛﻼﻳﻨﺖ ﺳﺎﻳﺪ ﻳﺎ ﺳﻤﺖ‬
‫‪CustomValidator‬‬
‫ﺳﺮﻭﺭ ﻭ ﻳﺎ ﻫﺮ ﺩﻭ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﺪ‪.‬‬
‫ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﺑﺮﺭﺳﻲ ﺷﺪﻩ ﺭﺍ ﺩﺭ ﻳﻚ ﻣﻜﺎﻥ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ ﻳﺎ ﺑﻪ ﺻﻮﺭﺕ‬
‫‪validationSummary‬‬
‫ﻛﻠﻲ ﻓﻘﻂ ﻳﻚ ﭘﻴﻐﺎﻡ ﺭﺍ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪2‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺑﺮﺍﻱ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺑﺎﻳﺪ ﻣﺮﺍﺣﻞ ﺯﻳﺮ ﻃﻲ ﺷﻮﺩ ‪:‬‬
‫‪ -١‬ﺗﺮﺳـــﻴﻢ ﻭ ﻳـــﺎ ﻗـــﺮﺍﺭ ﺩﺍﺩﻥ ﻳـــﻚ ﻛﻨﺘـــﺮﻝ ﺍﻋﺘﺒـــﺎﺭ ﻭﺭﻭﺩﻱ ﺭﻭﻱ ﻓـــﺮﻡ ﻭ ﺗﻨﻈـــﻴﻢ ﻛـــﺮﺩﻥ ﺧﺎﺻـــﻴﺖ‬
‫‪ ControlToValidate‬ﺁﻥ ﺑــﻪ ﻛﻨﺘﺮﻟــﻲ ﻛــﻪ ﻣــﻲ ﺧﻮﺍﻫﻴــﺪ ﺗﻌﻴــﻴﻦ ﺍﻋﺘﺒــﺎﺭ ﺷــﻮﺩ‪ .‬ﺍﮔــﺮ ﺷــﻤﺎ ﺍﺯ ﻛﻨﺘــﺮﻝ‬
‫‪ CompareValidator‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻛﻨﻴﺪ ‪ ،‬ﺑﺎﻳﺪ ﺧﺎﺻﻴﺖ ‪ ControlToCompare‬ﺭﺍ ﻧﻴﺰ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪ -٢‬ﺧﺎﺻﻴﺖ ‪ ErrorMessage‬ﺭﺍ ﺑﻪ ﭘﻴﻐـﺎﻣﻲ ﻛـﻪ ﻣـﻲ ﺧﻮﺍﻫﻴـﺪ ﻫﻨﮕﺎﻣﻴﻜـﻪ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﻣﻌﺘﺒـﺮ ﻧﻴﺴـﺖ‬
‫ﻧﻤﺎﻳﺶ ﺩﻫﺪ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪ -٣‬ﺧﺎﺻﻴﺖ ‪ Text‬ﺁﻧﺮﺍ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻥ ﭘﻴﻐﺎﻣﻲ ﻫﻨﮕﺎﻣﻴﻜﻪ ﺧﻄﺎ ﺭﺥ ﻣﻲ ﺩﻫﺪ ‪ ،‬ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪ .‬ﺍﺯ ﺍﻳـﻦ ﻣـﻮﺭﺩ‬
‫ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻥ ﺗﻮﺿﻴﺤﺎﺕ ﻃﻮﻻﻧﻲ ﺗﺮ ﺍﺯ ﺧﺎﺻﻴﺖ ‪ ErrorMessage‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﺷﻮﺩ‪.‬‬
‫‪ -٤‬ﺩﺭ ﺻﻮﺭﺕ ﻧﻴﺎﺯ ﻳﻚ ﻛﻨﺘﺮﻝ ‪ ValidationSummary‬ﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻭﺏ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺗﻤﺎﻡ ﭘﻴﻐـﺎﻡ ﻫـﺎﻱ‬
‫ﺧﻄﺎﻱ ﺣﺎﺻﻞ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ‪ ،‬ﺗﺮﺳﻴﻢ ﻛﻨﻴﺪ‪.‬‬
‫‪ -٥‬ﺗﻨﻬﺎ ﻭﺟﻮﺩ ﻛﻨﺘﺮﻟﻲ ﻛﻪ ﺳﺒﺐ ﻓﺮﺳﺘﺎﺩﻩ ﺷﺪﻥ ﻳﻚ ﺭﺧﺪﺍﺩ ‪ Post-Back‬ﻣﻲ ﺷﻮﺩ ‪ ،‬ﺳﺒﺐ ﺍﻧﺠـﺎﻡ ﺑﺮﺭﺳـﻲ‬
‫ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﻣﻲ ﮔﺮﺩﺩ‪ .‬ﭘﺲ ﻭﺟﻮﺩ ﻳﻚ ﭼﻨﻴﻦ ﻛﻨﺘﺮﻟـﻲ ) ﻣﺎﻧﻨـﺪ ﻳـﻚ ﺩﻛﻤـﻪ ( ﺭﻭﻱ ﻓـﺮﻡ ﺩﺭ ﺍﻳـﻦ ﺣﺎﻟـﺖ‬
‫ﺿﺮﻭﺭﻱ ﺍﺳﺖ‪.‬‬

‫ﺑـــﺮﺍﻱ ﻧﻤـــﺎﻳﺶ ﺧﻄﺎﻫـــﺎﻱ ﺗﻌﻴـــﻴﻦ ﺍﻋﺘﺒـــﺎﺭ ﺑـــﻪ ﺻـــﻮﺭﺕ ﻳـــﻚ ‪ MessageBox‬ﺧﺎﺻـــﻴﺖ ﻛﻨﺘـــﺮﻝ‬
‫‪ ValidationSummary‬ﺑﻪ ﻧﺎﻡ ‪ ShowMessage‬ﺭﺍ ‪ True‬ﻛﻨﻴﺪ‪.‬‬

‫ﺍﮔــــﺮ ﻳــــﻚ ﻛﻨﺘــــﺮﻝ ‪ RegularExprssionValidator‬ﺭﺍ ﺭﻭﻱ ﺻــــﻔﺤﻪ ﻗــــﺮﺍﺭ ﺩﻫﻴــــﺪ ﻭ ﺧﺎﺻــــﻴﺖ‬


‫‪ ValidationExpression‬ﺁﻧﺮﺍ ﺍﻧﺘﺨﺎﺏ ﻧﻤﺎﻳﻴﺪ ‪ ،‬ﺩﻳﺎﻟﻮﮒ ﺑﺎﻛﺲ ﺷﻜﻞ ‪ ١-‬ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﺩ ﻛـﻪ ﺩﺭ ﺍﻏﻠـﺐ ﻣـﻮﺍﺭﺩ‬
‫ﻛﺎﻓﻲ ﻣﻲ ﺑﺎﺷﺪ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪3‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺷﻜﻞ ‪ -١‬ﺻﻔﺤﻪ ﻱ ﺍﺩﻳﺘﻮﺭ ﻣﺮﺑﻮﻁ ﺑﻪ ﻛﻨﺘﺮﻝ ‪. RegularExprssionValidator‬‬

‫ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺍﺯ ﺯﺑﺎﻥ ‪ Pattern-matching‬ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒـﺎﺭ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﺍﺳـﺘﻔﺎﺩﻩ ﻣـﻲ ﻛﻨـﺪ ) ﻃﻼﻋـﺎﺕ‬
‫ﻭﺳﻴﻌﺘﺮ ﺭﺍ ﺩﺭ ﺍﻳﻦ ﺯﻣﻴﻨﻪ ﻣﻲ ﺗﻮﺍﻥ ﺩﺭ ‪ MSDN‬ﺑﺪﺳﺖ ﺁﻭﺭﺩ‪(.‬‬

‫ﺗﺮﻛﻴﺐ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ‪:‬‬

‫ﻳﻚ ﻛﻨﺘﺮﻝ ﺭﻭﻱ ﺻﻔﺤﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﺍﺯ ﭼﻨﺪﻳﻦ ﻛﻨﺘﺮﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﺪ‪ .‬ﺑﺮﺍﻱ ﻣﺜﺎﻝ ‪ TextBox‬ﺍﻳﻲ ﻛﻪ‬
‫ﺍﻳﻤﻴـــﻞ ﻛـــﺎﺭﺑﺮ ﺭﺍ ﺩﺭﻳﺎﻓـــﺖ ﻣـــﻲ ﻛﻨـــﺪ ﻣـــﻲ ﺗﻮﺍﻧـــﺪ ﺑـــﻪ ﻛﻨﺘـــﺮﻝ ‪ RequiredFieldValidator‬ﻭ ﻛﻨﺘـــﺮﻝ‬
‫‪ RegularExpressionValidator‬ﻣﺘﺼﻞ ﺑﺎﺷﺪ‪.‬‬

‫ﺩﺭ ﻣﻮﺭﺩ ﻛﻨﺘﺮﻝ ‪ CompareValidator‬ﺑﺎﻳﺪ ﺑﻪ ﻧﻜﺎﺕ ﺯﻳﺮ ﺗﻮﺟﻪ ﺩﺍﺷﺖ ‪:‬‬


‫‪ -‬ﺍﮔﺮ ﻛﻨﺘﺮﻝ ﻣﺸﺨﺺ ﺷﺪﻩ ﺩﺭ ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﻧﺘﻮﺍﻧﺪ ﺑﻪ ﻳﻚ ﻧـﻮﻉ ﺩﺍﺩﻩ ﻣﻨﺎﺳـﺐ ﺗﺒـﺪﻳﻞ‬
‫ﺷﻮﺩ‪ ،‬ﻧﺘﻴﺠﻪ ‪ Invalid‬ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪.‬‬
‫‪ -‬ﺍﮔﺮ ﻛﻨﺘﺮﻝ ﻣﺸﺨﺺ ﺷﺪﻩ ﺩﺭ ﺧﺎﺻﻴﺖ ‪ ControlToComare‬ﻧﺘﻮﺍﻧﺪ ﺑﻪ ﻳﻚ ﻧـﻮﻉ ﺩﺍﺩﻩ ﻣﻨﺎﺳـﺐ ﺗﺒـﺪﻳﻞ‬
‫ﺷﻮﺩ‪ ،‬ﻧﺘﻴﺠﻪ ‪ Valid‬ﺧﻮﺍﻫﺪ ﺑﻮﺩ‪ .‬ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﺑﺎﻳﺪ ﺍﺯ ﻳﻚ ﻛﻨﺘﺮﻝ ﺩﻳﮕﺮ ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺑﻬﺮﻩ ﺟﺴﺖ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪4‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻫﻨﮕﺎﻣﻴﻜﻪ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺍﺯ ﻛﻨﺘﺮﻝ ‪ CompareValidator‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﻴﻢ ﺑﺎ ﺗﻨﻈﻴﻢ ﻛـﺮﺩﻥ ﺧﺎﺻـﻴﺖ ‪Operator‬‬


‫ﺁﻥ ﻣﻲ ﺗﻮﺍﻥ ﻧﻮﻉ ﻣﻘﺎﻳﺴﻪ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﺍﺩ‪ .‬ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﮔﺎﻫﻲ ﺍﺯ ﺍﻭﻗﺎﺕ ﻭﺭﻭﺩﻱ ﻳﻚ ﻓﻴﻠﺪ ﺑﺎﻳﺪ ﻛﻤﺘﺮ ﻳﺎ ﻣﺴـﺎﻭﻱ ﻓﻴﻠـﺪ‬
‫ﺩﻳﮕﺮﻱ ﺑﺎﺷﺪ ﻭ ﺍﻣﺜﺎﻝ ﺍﻳﻨﻬﺎ‪ .‬ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺩﺭ ﭘﻨﺠﺮﻩ ﺧﻮﺍﺹ ﮐﻨﺘﺮﻝ ﺫﮐﺮ ﺷﺪﻩ ﺑﻪ ﺳﺎﺩﮔﻲ ﻗﺎﺑﻞ ﺗﻨﻈﻴﻢ ﺍﺳﺖ‪.‬‬

‫ﻣﺜﺎﻝ ﺍﻭﻝ ‪:‬‬

‫ﻣﻄﺎﺑﻖ ﺷﻜﻞ‪ -٢‬ﺩﻭ ‪ ، TextBox‬ﺩﻭ ‪ Label‬ﻭ ﻳﻚ ﻋﺪﺩ ‪ Button‬ﺭﻭﻱ ﺻﻔﺤﻪ ﻗﺮﺍﺭ ﺩﻫﻴﺪ‪ .‬ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﻣﻘـﺪﺍﺭ‬
‫ﻋﺪﺩﻱ ‪ TextBox‬ﺍﻭﻝ ﺭﺍ ﺑﻪ ﻣﻘﺪﺍﺭ ﻋﺪﺩﻱ ‪ TextBox‬ﺩﻭﻡ ﺗﻘﺴﻴﻢ ﻛﻨﻴﻢ ﻭ ﺣﺎﺻﻞ ﺭﺍ ﺩﺭ ‪ Label‬ﻧﻬـﺎﻳﻲ ﻧﻤـﺎﻳﺶ‬
‫ﺩﻫﻴﻢ‪.‬‬

‫ﺷﻜﻞ ‪ – ٢‬ﻧﻤﺎﻱ ﺍﺑﺘﺪﺍﻳﻲ ﻣﺜﺎﻝ ﺍﻭﻝ‪.‬‬

‫ﻧﺎﻡ ‪ TextBox‬ﻫﺎ ﺭﺍ )ﺍﺯ ﺳﻤﺖ ﭼﭗ( ﺑﻪ ‪ txtVal1‬ﻭ ‪ txtVal2‬ﻭ ﺩﻛﻤﻪ ﺭﺍ ﺑﻪ ‪ btnCalc‬ﻭ ‪ Label‬ﻧﻬـﺎﻳﻲ ﺭﺍ‬
‫ﺑﻪ ‪ lblResult‬ﺗﻐﻴﻴﺮ ﺩﻫﻴﺪ‪.‬‬
‫ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﭼﻚ ﻛﻨﻴﻢ ﻛﻪ ﺁﻳﺎ ﻛﺎﺭﺑﺮ ﺩﺭ ﻫﺮ ﺩﻭ ‪ TextBox‬ﭼﻴﺰﻱ ﻭﺍﺭﺩ ﻛﺮﺩﻩ ﺍﺳﺖ ﻳﺎ ﺧﻴـﺮ ﻭ ﺁﻳـﺎ ﻣﺤﺘﻮﻳـﺎﺕ‬
‫‪ TextBox‬ﺩﻭﻡ ﺍﺯ ﺻﻔﺮ ﺑﺰﺭﮔﺘﺮ ﻭ ﻛﻮﭼﻜﺘﺮ ﺍﺯ ‪ ١٠٠٠‬ﻣﻲ ﺑﺎﺷﺪ؟‬
‫ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﺩﻭ ﻛﻨﺘـﺮﻝ ‪ RequiredFieldValidator‬ﻭ ﻳـﻚ ﻛﻨﺘـﺮﻝ ‪ RangeValidator‬ﺭﺍ ﺭﻭﻱ ﻓـﺮﻡ‬
‫ﻗﺮﺍﺭ ﺩﻫﻴﺪ )ﺷﻜﻞ ‪.( ٣‬‬

‫ﺷﻜﻞ ‪ -٣‬ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺭﻭﻱ ﻓﺮﻡ ﻭﺏ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪5‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﻛﻨﺘﺮﻝ ‪ RequiredFieldValidator‬ﻣﺮﺑﻮﻁ ﺑﻪ ﺗﻜﺴـﺖ ﺑـﺎﻛﺲ ﺍﻭﻝ ﺭﺍ ﺑـﻪ‬


‫‪ txtVal1‬ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ )ﺷـﻜﻞ ‪ ( ٤‬ﻭ ﺍﻳـﻦ ﺧﺎﺻـﻴﺖ ﺭﺍ ﺑـﺮﺍﻱ ﻛﻨﺘـﺮﻝ ‪ RequiredFieldValidator‬ﻣﺮﺑـﻮﻁ ﺑـﻪ‬
‫‪ TextBox‬ﺩﻭﻡ ﺑﻪ ‪ txtVal2‬ﺗﻨﻈﻴﻢ ﻧﻤﺎﻳﻴﺪ‪.‬‬

‫ﺷﻜﻞ ‪ -٤‬ﺗﻨﻈﻴﻢ ﻛﺮﺩﻥ ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﻛﻨﺘﺮﻝ ‪. RequiredFieldValidator‬‬

‫ﻭ ﺩﺭ ﻣﻮﺭﺩ ﻛﻨﺘﺮﻝ ‪ RangeValidator‬ﺍﺑﺘﺪﺍ ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﺭﺍ ﺑﻪ ‪ txtVal2‬ﺗﻨﻈﻴﻢ ﻛﻨﻴـﺪ ﻭ‬


‫ﺳﭙﺲ ‪ min‬ﻭ ‪ max‬ﺁﻧﺮﺍ ﺑﻪ ‪ ١‬ﻭ ‪ ١٠٠٠‬ﺗﻐﻴﻴﺮ ﺩﻫﻴﺪ ) ﺷﻜﻞ ‪.( ٥‬‬
‫ﺍﻛﻨﻮﻥ ﻧﻮﺑﺖ ﺑﻪ ﺗﻨﻈﻴﻢ ﻛﺮﺩﻥ ﺧﺎﺻﻴﺖ ‪ ErrorMessage‬ﺗﻚ ﺗﻚ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒـﺎﺭ ﻣـﻲ ﺑﺎﺷـﺪ‪ .‬ﺑـﺮﺍﻱ‬
‫ﻫﺮﻛﺪﺍﻡ ﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻌﻨﺎ ﺩﺍﺭ ﺑﻨﻮﻳﺴﻴﺪ )ﺷﻜﻞ ‪.(٦‬‬
‫ﺭﻭﻱ ﺩﻛﻤﻪ ﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻛﻨﻴﺪ ﻭ ﻛﺪﻱ ﺳﺎﺩﻩ ﺑﺮﺍﻱ ﺗﻘﺴﻴﻢ ﻛﺮﺩﻥ ﺩﻭ ﻋﺪﺩ ﺑﺮ ﻫﻢ ﺭﺍ ﺑﻨﻮﻳﺴﻴﺪ ) ﻟﻄﻔﺎ ﺑﻪ ﺳـﻮﺭﺱ‬
‫ﻫﻤﺮﺍﻩ ﻣﺮﺍﺟﻌﻪ ﻛﻨﻴﺪ( ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪6‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺷﻜﻞ ‪ -٥‬ﺗﻨﻈﻴﻢ ﺧﻮﺍﺹ ﻛﻨﺘﺮﻝ ‪. RangeValidator‬‬

‫ﺷﻜﻞ ‪ -٦‬ﻧﻤﺎﻱ ﻓﺮﻡ ﭘﺲ ﺍﺯ ﺗﻨﻈﻴﻢ ﺧﺎﺻﻴﺖ ‪ ErrorMessage‬ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎ‪.‬‬

‫ﺣﺎﻻ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺍﺟﺮﺍ ﻛﻨﻴﺪ ‪ .‬ﻗﺒﻞ ﺍﺯ ﻫﺮﻛﺎﺭﻱ ﺭﻭﻱ ﺩﻛﻤﻪ ﺍﻧﺠﺎﻡ ﻣﺤﺎﺳـﺒﻪ ﻛﻠﻴـﻚ ﻧﻤﺎﻳﻴـﺪ ﺗـﺎ ﻧﺘﻴﺠـﻪ ﻣﻄﻠـﻮﺏ ﺭﺍ‬
‫ﺑﺒﻴﻨﻴﺪ!‬

‫ﺍﮔــﺮ ﺩﺭ ‪ TextBox‬ﺩﻭﻡ ﻋــﺪﺩﻱ ﺑﺰﺭﮔﺘــﺮ ﺍﺯ ﻳــﻚ ﺭﺍ ﻭﺍﺭﺩ ﻧﻤــﺎﻳﻴﻢ ﻳــﻚ ﭘﻴﻐــﺎﻡ ﺧﻄــﺎ ﺍﺯ ﻃــﺮﻑ ﻛﻨﺘــﺮﻝ‬
‫‪ RangeValidator‬ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﺩ‪ .‬ﭼﺮﺍ؟! ﭼﻮﻥ ﻧﻮﻉ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﺭﺍ ﻣﺸﺨﺺ ﻧﻜﺮﺩﻩ ﺍﻳﻢ! ﺧﺎﺻـﻴﺖ ‪Type‬‬
‫ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺭﺍ ﺑﻪ ‪ int‬ﺗﻐﻴﻴﺮ ﺩﻫﻴﺪ )ﺷﻜﻞ ‪. (٧‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪7‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺷﻜﻞ ‪ -٧‬ﻗﺒﻞ ﺍﺯ ﻫﺮ ﻛﺎﺭﻱ ﺑﺎﻳﺪ ﻧﻮﻉ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﻛﻨﺘﺮﻝ ‪ RangeValidator‬ﺭﺍ ﻣﺸﺨﺺ ﻛﺮﺩ‪.‬‬

‫ﻛﻨﺴﻞ ﻛﺮﺩﻥ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ‪:‬‬

‫ﭼﻮﻥ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﻗﺒﻞ ﺍﺯ ﺍﻳﻨﻜﻪ ﺳﺮﻭﺭ ﺻﻔﺤﻪ ﺍﻱ ﺭﺍ ﭘﺮﺩﺍﺯﺵ ﻛﻨﺪ ﺍﺗﻔﺎﻕ ﻣﻲ ﺍﻓﺘﺪ ‪ ،‬ﻣﻤﻜﻦ ﺍﺳﺖ ﻛﺎﺭﺑﺮ ﺩﺭ ﺑﻴﻦ‬
‫ﺍﻧﺒﻮﻫﻲ ﺍﺯ ﭘﻴﻐﺎﻡ ﻫﺎﻱ ﺧﻄﺎ ﮔﻴﺮ ﺑﻴﻔﺘﺪ ﻭ ﻧﻪ ﺭﺍﻩ ﭘﺲ ﺩﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻭ ﻧﻪ ﭘﻴﺶ! ﺑﺮﺍﻱ ﻛﻨﺴﻞ ﻛﺮﺩﻥ ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﻫﺎ ﻣﻲ‬
‫ﺗﻮﺍﻥ ﺍﺯ ﻳﻚ ﻛﻨﺘﺮﻝ ﻛﻪ ﺧﺎﺻﻴﺖ ‪ Post-Back‬ﻧﺪﺍﺷﺘﻪ ﺑﺎﺷﺪ ﻣﺎﻧﻨﺪ ‪ Submit HTML Control‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ‪.‬‬
‫ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﻣﻲ ﺗﻮﺍﻥ ﻛﺎﺭﺑﺮ ﺭﺍ ﺑﻪ ﻳﻚ ﺻﻔﺤﻪ ﻱ ﺩﻳﮕﺮ ﻫـﺪﺍﻳﺖ ﻛـﺮﺩ ) ﺑـﺎ ﺑﺮﺭﺳـﻲ ﻛـﺮﺩﻥ ﺧﺎﺻـﻴﺖ ‪IsValid‬‬
‫ﺷﻲﺀ ‪( Page‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪8‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻣﺜﺎﻝ ﺩﻭﻡ‪:‬‬

‫ﺷﮑﻞ ‪ -٨‬ﺗﺼﻮﻳﺮﯼ ﺍﺯ ﻣﺜﺎﻝ ﺩﻭﻡ ﺩﺭ ﺣﺎﻟﺖ ﻃﺮﺍﺣﻲ‪.‬‬

‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺍﮔﺮ ﻛﺎﺭﺑﺮ ﺑﺮ ﺭﻭﻱ ﺩﻛﻤﻪ ﻱ ﻛﻨﺴﻞ ﻛﻠﻴﻚ ﻛﺮﺩ ﺑﺪﻭﻥ ﺍﻧﺠﺎﻡ ‪ Validation‬ﺑﻪ ﺻﻔﺤﻪ‬
‫ﻱ ﺩﻳﮕﺮﻱ ﺭﺍﻫﻨﻤﺎﻳﻲ ﺷﻮﺩ‪.‬‬
‫ﻳﻚ ‪ TextBox‬ﺑﻪ ﻧﺎﻡ ‪ ، txtID‬ﻳﻚ ‪ RequiredFieldValidator‬ﻛﻪ ﺍﻳـﻦ ‪ TextBox‬ﺭﺍ ﻛﻨﺘـﺮﻝ ﻣـﻲ ﻛﻨـﺪ‬
‫ﺭﻭﻱ ﻓﺮﻡ ﻗﺮﺍﺭ ﺩﻫﻴﺪ‪ .‬ﻳﻚ ﺩﻛﻤﻪ ﺳﺮﻭﺭ ﻭﺏ ﺑﻪ ﻧﺎﻡ ‪ btnSend‬ﻭ ﻳﻚ ﺩﻛﻤﻪ ‪ HTML‬ﻣﻌﻤﻮﻟﻲ ﺍﺯ ﻧﻮﻉ ‪ Submit‬ﺑﻪ‬
‫ﻧﺎﻡ ‪ btnCancel‬ﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻗﺮﺍﺭ ﺩﻫﻴﺪ )ﺷﻜﻞ ‪.(٨‬‬
‫ﻳﻚ ﻓﺮﻡ ﻭﺏ ﺟﺪﻳﺪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺍﺯ ﻃﺮﻳﻖ ﻣﻨﻮﻱ ‪ ) Project‬ﺁﻳﺘﻢ ‪ ( Add web form‬ﺍﺿﺎﻓﻪ ﻧﻤﺎﻳﻴﺪ ﻭ ﻧﺎﻡ ﭘـﻴﺶ‬
‫ﻓﺮﺽ ﺁﻧﺮﺍ ﺑﭙﺬﻳﺮﻳﺪ‪ .‬ﺭﻭﻱ ﺍﻳﻦ ﻓﺮﻡ ﻳﻚ ‪ Label‬ﻗﺮﺍﺭ ﺩﻫﻴﺪ ﻭ ﺩﺍﺧﻞ ﺁﻥ ﺑﻨﻮﻳﺴﻴﺪ ‪. Sorry! :‬‬
‫ﺩﺭ ﺳﻮﺭﺱ ‪ HTML‬ﺻﻔﺤﻪ ‪ ،‬ﺧﻮﺍﺹ ﻛﻨﺘﺮﻝ ‪ Submit‬ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺑﺎﻳﺪ ﺗﻐﻴﻴﺮ ﺩﺍﺩ‪:‬‬

‫"‪<INPUT style="Z-INDEX: 101; LEFT: 274px; WIDTH: 115px; POSITION: absolute; TOP: 142px; HEIGHT: 27px‬‬
‫>";‪type="submit" value="Cancel" id="btnCancel" language="javascript" onclick="Page_ValidationActive=false‬‬

‫ﻭ ﺩﺭ ﻓﺮﻡ ﻭﺏ ﻛﺪ ﺯﻳﺮ ﺭﺍ ﻣﻲ ﺗﻮﺍﻥ ﺍﺿﺎﻓﻪ ﻛﺮﺩ ‪:‬‬

‫)‪private void Page_Load(object sender, System.EventArgs e‬‬


‫{‬
‫) ‪if ( Page.IsPostBack‬‬
‫{‬
‫;)(‪Page.Validate‬‬
‫‪//user cancelled the validation‬‬
‫) ‪if (! Page.IsValid‬‬
‫; )"‪Response.Redirect("WebForm2.aspx‬‬
‫}‬
‫}‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪9‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﺍﮔﺮ ﻛﺎﺭﺑﺮ ﺭﻭﻱ ﺩﻛﻤﻪ ﻛﻨﺴﻞ ﻛﻠﻴﻚ ﻛﻨﺪ ﻭ ﺩﺭ ﺻﻮﺭﺗﻴﻜﻪ ﭼﻴﺰﻱ ﺭﺍ ﻭﺍﺭﺩ ﻧﻜﺮﺩﻩ ﺑﺎﺷﺪ ﺑـﻪ ﺭﺍﺣﺘـﻲ‬
‫ﺑﻪ ﺻﻔﺤﻪ ﻱ !‪ Sorry‬ﺭﺍﻫﻨﻤﺎﻳﻲ ﻣﻲ ﺷﻮﺩ! ) ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺑﻴﺸﺘﺮ ﻣﻲ ﺗﻮﺍﻥ ﺗﻮﺳﻌﻪ ﺩﺍﺩ‪(...‬‬

‫ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺳﻔﺎﺭﺷﻲ ‪:‬‬

‫ﺍﮔــﺮ ﻫﻴﭽﻜــﺪﺍﻡ ﺍﺯ ﻛﻨﺘــﺮﻝ ﻫــﺎﻱ ﺗﻌﻴــﻴﻦ ﺍﻋﺘﺒــﺎﺭ ﻧﻴــﺎﺯ ﺷــﻤﺎ ﺭﺍ ﺑــﺮﺁﻭﺭﺩﻩ ﻧﻤــﻲ ﻛﻨﻨــﺪ ﻣــﻲ ﺗﻮﺍﻧﻴــﺪ ﺍﺯ ﻛﻨﺘــﺮﻝ‬
‫‪ CustomValidator‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ‪ .‬ﺍﮔﺮ ﻻﺯﻡ ﺍﺳﺖ ﭘﺮﺩﺍﺯﺵ ﺳﻤﺖ ﺳﺮﻭﺭ ﺍﻧﺠﺎﻡ ﺷﻮﺩ ‪ ،‬ﻛﺪ ﺗﻌﻴـﻴﻦ ﺍﻋﺘﺒـﺎﺭ ﺭﺍ‬
‫ﺩﺭ ﺭﺧــــﺪﺍﺩ ‪ ServerValidate‬ﻗــــﺮﺍﺭ ﺩﻫﻴــــﺪ‪ .‬ﺑــــﺮﺍﻱ ﺗﻌﻴــــﻴﻦ ﺍﻋﺘﺒــــﺎﺭ ﺳــ ـﻤﺖ ﻛﻼﻳﻨــــﺖ ﺧﺎﺻــــﻴﺖ‬
‫‪ ClientValidationFunction‬ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺭﺍ ﺑﺎﻳﺪ ﺗﻨﻈﻴﻢ ﻛﺮﺩ‪.‬‬

‫ﻣﺜﺎﻝ ﺳﻮﻡ ‪:‬‬

‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﻗﺼﺪ ﺩﺍﺭﻳﻢ ﺑﺮﺭﺳﻲ ﻛﻨﻴﻢ ﺁﻳﺎ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ ﻳﻚ ﻋﺪﺩ ﺍﻭﻝ ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ‪.‬‬
‫ﺑــﺮﺍﻱ ﺍﻳــﻦ ﻣﻨﻈــﻮﺭ ﻳــﻚ ﺩﻛﻤــﻪ ﺑــﻪ ﻧــﺎﻡ ‪ btnTest‬ﻭ ﻳــﻚ ‪ TextBox‬ﺑــﻪ ﻧــﺎﻡ ‪ txtPrime‬ﻭ ﻳــﻚ ﻛﻨﺘــﺮﻝ‬
‫‪ CustomValidator‬ﺑﻪ ﻧﺎﻡ ‪ vldtxtPrime‬ﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻗﺮﺍﺭ ﺩﻫﻴﺪ )ﺷﻜﻞ ‪. (٩‬‬

‫ﺷﮑﻞ ‪ -٩‬ﻓﺮﻡ ﻭﺏ ﻣﺜﺎﻝ ﺳﻮﻡ ﺩﺭ ﺣﺎﻟﺖ ﻃﺮﺍﺣﻲ‬

‫ﺧﺎﺻﻴﺖ ‪ ControlToValidate‬ﻣﺮﺑﻮﻁ ﺑﻪ ‪ vldtxtPrime‬ﺭﺍ ﺑﻪ ‪ btnTest‬ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ‪ .‬ﺳﭙﺲ ﺩﺭ ﺑﺮﮔـﻪ ﻱ‬


‫ﺧﻮﺍﺹ ‪ ،‬ﻛﻨﺘﺮﻝ ‪ vldtxtPrime‬ﺭﺍ ﺍﻧﺘﺨﺎﺏ ﻧﻤﻮﺩﻩ ﻭ ﺭﻭﻱ ﺁﻳﻜﻮﻧﻲ ﺑﻪ ﺷﻜﻞ ﺭﻋﺪ ﻭ ﺑﺮﻕ ﻛﻠﻴﻚ ﻧﻤﺎﻳﻴـﺪ ‪ .‬ﺻـﻔﺤﻪ‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪10‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻱ ﺭﺧﺪﺍﺩﻫﺎﻱ ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﺩ ) ﺷﻜﻞ ‪ . ( ١٠‬ﺍﻛﻨﻮﻥ ﺩﺭ ﻗﺴﻤﺖ ‪ ServerValidate‬ﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻛﻨﻴﺪ‪.‬‬
‫ﺭﺧﺪﺍﺩ ﺯﻳﺮ ﺑﻪ ﺻﻮﺭﺕ ﺍﺗﻮﻣﺎﺗﻴﻚ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺍﺿﺎﻓﻪ ﻣﻲ ﺷﻮﺩ‪:‬‬
‫‪private void vldtxtPrime_ServerValidate(object source,‬‬
‫)‪System.Web.UI.WebControls.ServerValidateEventArgs args‬‬

‫ﺷﮑﻞ ‪ -١٠‬ﻧﺤﻮﻩ ﯼ ﺍﺿﺎﻓﻪ ﮐﺮﺩﻥ ﻳﮏ ﺭﺧﺪﺍﺩ ﺑﻪ ﮐﻨﺘﺮﻝ ‪. CustomValidator‬‬

‫ﺩﺭ ﺍﻳﻦ ﺭﺧﺪﺍﺩ ﻋﻤﻠﻴﺎﺕ ﭼﻚ ﻛﺮﺩﻥ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﺩ‪ .‬ﺑـﺮﺍﻱ ﺗﻜﻤﻴـﻞ ﻛـﺪ ﻟﻄﻔـﺎ ﺑـﻪ ﻛـﺪ ﻫﻤـﺮﺍﻩ‬
‫ﻣﺮﺍﺟﻌﻪ ﻧﻤﺎﻳﻴﺪ‪.‬‬
‫) ﺑﻬﺘﺮ ﺍﺳﺖ ﺧﺎﺻﻴﺖ ‪ ErrorMessage‬ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺭﺍ ﺑﻪ ﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻌﻨﺎ ﺩﺍﺭ ﺗﺒﺪﻳﻞ ﻛﻨﻴﺪ‪( .‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪11‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻣﻮﺍﺭﺩ ﺗﻜﻤﻴﻠﻲ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﻭﺏ ‪:‬‬

‫ﻃﺮﻳﻘﻪ ﻱ ﺣﺮﻛﺖ ﺑﻴﻦ ﺻﻔﺤﺎﺕ ﻣﺨﺘﻠﻒ ﺩﺭ ‪: ASP.NET‬‬

‫ﺑﺮﺍﻱ ﺣﺮﻛﺖ ﺑﻴﻦ ﺻﻔﺤﺎﺕ ﻣﺨﺘﻠـﻒ ‪ ASP.NET ،‬ﺭﻭﺵ ﻫـﺎﻱ ﻣﺨﺘﻠﻔـﻲ ﺭﺍ ﺍﺭﺍﺋـﻪ ﺩﺍﺩﻩ ﺍﺳـﺖ ﻛـﻪ ﺩﺭ ﺍﺩﺍﻣـﻪ‬
‫ﺑﺮﺭﺳﻲ ﺧﻮﺍﻫﻨﺪ ﺷﺪ‪.‬‬

‫ﺟﺪﻭﻝ ‪ -٢‬ﺣﺮﻛﺖ ﺑﻴﻦ ﺻﻔﺤﺎﺕ ﺩﺭ ‪ASP.NET‬‬

‫ﺭﻭﺵ ﻫﺪﺍﻳﺖ ﻭ ﺣﺮﻛﺖ ﺑﻪ‬


‫ﻛﺎﺭﺑﺮﺩ‬
‫ﺻﻔﺤﻪ ﺍﻱ ﺩﻳﮕﺮ‬
‫ﺣﺮﻛﺖ ﺑﻪ ﺻﻔﺤﻪ ﺍﻱ ﺩﻳﮕﺮ‬ ‫ﻛﻨﺘﺮﻝ ‪HyperLink‬‬
‫ﻣﻌﺎﺩﻝ ﻛﻠﻴﻚ ﺑﺮ ﺭﻭﻱ ﻳﻚ ﻛﻨﺘﺮﻝ ‪ HyperLink‬ﻣﻲ ﺑﺎﺷﺪ‪.‬‬ ‫ﺗﺎﺑﻊ ;)…(‪Response.Redirect‬‬
‫ﺑﻪ ﻓﺮﻡ ﻭﺏ ﺟﺎﺭﻱ ﺧﺎﺗﻤﻪ ﺑﺨﺸﻴﺪﻩ ﻭ ﺍﺟﺮﺍﻱ ﺻﻔﺤﻪ ﺍﻱ ﺩﻳﮕﺮ ﺭﺍ ﺁﻏﺎﺯ‬
‫ﻣﻲ ﻛﻨﺪ‪ .‬ﺍﻳﻦ ﺭﻭﺵ ﺗﻨﻬﺎ ﺑﺮﺍﻱ ﺣﺮﻛﺖ ﺑﻴﻦ ﻓﺮﻡ ﻫﺎﻱ ﻭﺏ )‪ (.aspx‬ﻛﺎﺭﺑﺮﺩ‬ ‫ﺗﺎﺑﻊ ;)…(‪Server.Transfer‬‬
‫ﺩﺍﺭﺩ‪.‬‬
‫ﺩﺭﺣﺎﻟﻴﻜﻪ ﻓﺮﻡ ﻭﺏ ﺟﺎﺭﻱ ﺩﺭﺣﺎﻝ ﻧﻤﺎﻳﺶ ﺍﺳﺖ ‪ ،‬ﺍﺟﺮﺍﻱ ﻳﻚ ﻓﺮﻡ ﻭﺏ‬
‫ﺟﺪﻳﺪ ﺭﺍ ﺁﻏﺎﺯ ﻣﻲ ﻛﻨﺪ‪ .‬ﻣﺤﺘﻮﻳﺎﺕ ﻫﺮ ﺩﻭ ﻓﺮﻡ ﺗﺮﻛﻴﺐ ﺧﻮﺍﻫﻨﺪ ﺷﺪ‪ .‬ﺍﻳﻦ‬ ‫ﺗﺎﺑﻊ ;)…(‪Server.Execute‬‬
‫ﺭﻭﺵ ﻧﻴﺰ ﺗﻨﻬﺎ ﺑﺮﺍﻱ ﻓﺮﻡ ﻫﺎﻱ ﻭﺏ ﻛﺎﺭﺑﺮﺩ ﺩﺍﺭﺩ‪.‬‬
‫ﻳﻚ ﺻﻔﺤﻪ ﺭﺍ ﺩﺭ ﻳﻚ ﭘﻨﺠﺮﻩ ﺟﺪﻳﺪ ﻣﺮﻭﺭﮔﺮ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ‪ .‬ﺍﮔﺮ ﻛﺎﺭﺑﺮ ﺍﺯ‬
‫ﺗﺎﺑﻊ ﺍﺳﻜﺮﻳﭙﺘﻲ‬
‫ﺑﺮﻧﺎﻣﻪ ﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ ‪ pop-up stopper‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﺪ ﺍﻳﻦ ﻣﺘﺪ ﻛﺎﺭﺁﻳﻲ‬
‫;)…(‪window.open‬‬
‫ﻧﺨﻮﺍﻫﺪ ﺩﺍﺷﺖ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪12‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ HyperLink‬ﻭ ‪: Redirection‬‬

‫ﺑﺎ ﺗﻨﻈﻴﻢ ﻛﺮﺩﻥ ﺧﺎﺻﻴﺖ ‪ NavigateURL‬ﻛﻨﺘﺮﻝ ‪ ، HyperLink‬ﺑﺎ ﻛﻠﻴـﻚ ﻛـﺎﺭﺑﺮ ﺑـﺮ ﺭﻭﻱ ﺍﻳـﻦ ﻛﻨﺘـﺮﻝ ﺑـﻪ‬
‫ﺻﻔﺤﻪ ﻱ ﻣﺸﺨﺺ ﺷﺪﻩ ‪ ،‬ﻫﺪﺍﻳﺖ ﻣﻲ ﮔﺮﺩﺩ‪ .‬ﺍﻳـﻦ ﻛﻨﺘـﺮﻝ ﺳـﺒﺐ ﺍﻧﺠـﺎﻡ ﻫﻴﭽﮕﻮﻧـﻪ ﺭﺧـﺪﺍﺩﻱ ﺩﺭ ﺳـﻤﺖ ﺳـﺮﻭﺭ‬
‫ﻧﻤــﻲ ﮔــﺮﺩﺩ‪ .‬ﺩﺭ ﺻــﻮﺭﺕ ﻧﻴــﺎﺯ ﺑــﻪ ﭘــﺮﺩﺍﺯﺵ ﺭﺧــﺪﺍﺩ ﻛﻠﻴــﻚ ﻣــﻲ ﺗــﻮﺍﻥ ﺍﺯ ﻛﻨﺘــﺮﻝ ﻫــﺎﻱ ‪ LinkButton‬ﻭ ﻳــﺎ‬
‫‪ ImageButton‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ‪ .‬ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﺗﺎﺑﻊ ‪ Response.Redirect‬ﺑﺮﺍﻱ ﻫﺪﺍﻳﺖ ﻛـﺎﺭﺑﺮ ﺑـﻪ‬
‫ﺻﻔﺤﻪ ﺍﻱ ﺩﻳﮕﺮ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ‪.‬‬

‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ ‪: Transfer‬‬

‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻳﻦ ﺗﺎﺑﻊ ﻳﺎ ﻣﺘـﺪ ﺑﺴـﻴﺎﺭ ﺷـﺒﻴﻪ ﺑـﻪ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ‪ HyperLink‬ﻭ ﻳـﺎ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺗـﺎﺑﻊ ‪Redirect‬‬
‫ﻣﻲ ﺑﺎﺷﺪ ﺑﺎ ﻳﻚ ﺗﻔﺎﻭﺕ ‪ Transfer :‬ﻣﻲ ﺗﻮﺍﻧـﺪ ﺑﻌﻀـﻲ ﺍﺯ ﺍﻃﻼﻋـﺎﺕ ﻣﺮﺑـﻮﻁ ﺑـﻪ ﺻـﻔﺤﻪ ﻱ ﺍﺻـﻠﻲ ﺭﺍ ﺩﺭﺑـﻴﻦ‬
‫ﺩﺭﺧﻮﺍﺳﺖ ﻫﺎ ‪ ،‬ﺣﻔﻆ ﻭ ﻧﮕﻬﺪﺍﺭﻱ ﻛﻨﺪ‪ .‬ﺗﻨﻈﻴﻢ ﻛﺮﺩﻥ ﺁﺭﮔﻮﻣﺎﻥ ﺗﺎﺑﻊ ‪ Transfer‬ﺑـﻪ ‪ True‬ﺳـﺒﺐ ﻣـﻲ ﺷـﻮﺩ ﻛـﻪ‬
‫‪ QueryString‬ﻭ ‪ ViewState‬ﻭ ﭘﺮﻭﺳﻴﺠﺮ ﺭﺧﺪﺍﺩ ﺩﺭ ﻓﺮﻡ ﻣﻘﺼﺪ ﻧﻴﺰ ﻣﻬﻴﺎ ﺑﺎﺷﻨﺪ‪ .‬ﺑﺮﺍﻱ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻳﻦ ﺣﺎﻟﺖ‬
‫ﺍﺑﺘﺪﺍ ﺑﺎﻳﺪ ﺧﺎﺻﻴﺖ ‪ EnableViewStateMac‬ﻓﺮﻡ ﻭﺏ ﺭﺍ ‪ false‬ﻛﻨﻴﺪ‪ .‬ﺑﻪ ﺻـﻮﺭﺕ ﭘـﻴﺶ ﻓـﺮﺽ ‪ASP.NET‬‬
‫ﺍﻃﻼﻋﺎﺕ ‪ ViewState‬ﺭﺍ ‪ Hash‬ﻣﻲ ﻛﻨﺪ‪ .‬ﺑﺎ ‪ False‬ﻛﺮﺩﻥ ﺁﻥ ‪ ،‬ﺍﻳـﻦ ﺍﻃﻼﻋـﺎﺕ ﺩﺭ ﺻـﻔﺤﻪ ﻱ ﺩﻳﮕـﺮ ﻧﻴـﺰ ﻗﺎﺑـﻞ‬
‫ﺧﻮﺍﻧﺪﻥ ﺧﻮﺍﻫﻨﺪ ﺷﺪ‪.‬‬
‫ﺑﺮﺍﯼ ﺩﺭﻳﺎﻓﺖ ﺍﻳﻦ ﺍﻃﻼﻋﺎﺕ ﺩﺭ ﺻﻔﺤﻪ ﺍﯼ ﺩﻳﮕﺮ ﻣﯽ ﺗﻮﺍﻥ ﺍﺯ ‪ Request.Form‬ﺍﺳـﺘﻔﺎﺩﻩ ﮐـﺮﺩ‪ .‬ﺍﮔـﺮ ﺑـﺎ ‪ASP‬‬
‫ﻗﺪﻳﻤﯽ ﺁﺷﻨﺎﻳﯽ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ ﺍﻳﻦ ﻧﻮﻉ ﺭﻭﺵ ﻫﺎ ﻓﻘﻂ ﺑﺮﺍﯼ ﺣﻔـﻆ ﺳـﺎﺯﮔﺎﺭﯼ ﺑـﺎ ﺁﻥ ﺩﺭ ‪ ASP.NET‬ﻗـﺮﺍﺭ ﺩﺍﺩﻩ‬
‫ﺷﺪﻩ ﺍﺳﺖ ) ﭘﺲ ﺯﻳﺎﺩ ﻧﮕﺮﺍﻥ ﻧﺒﺎﺷﻴﺪ! (‪.‬‬

‫ﺗﺬﻛﺮ ‪ :‬ﻣﺘﺪﻫﺎﻱ ‪ Transfer‬ﻭ ‪ Execute‬ﺗﻨﻬﺎ ﺑﺎ ﻓﺮﻡ ﻫﺎﻱ ﻭﺏ ﻛﺎﺭ ﻣﻲ ﻛﻨﻨﺪ‪ .‬ﻫﺮﮔﻮﻧﻪ ﺳﻌﻲ ﺩﺭ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﻳـﻚ‬
‫ﺻﻔﺤﻪ ﻱ ‪ HTML‬ﻣﻌﻤﻮﻟﻲ ﺑﺎ ﻳﻚ ﺧﻄﺎﻱ ﺯﻣﺎﻥ ﺍﺟﺮﺍ ﭘﺎﺳﺦ ﺩﺍﺩﻩ ﺧﻮﺍﻫﺪ ﺷﺪ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪13‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﻣﺜﺎﻝ ‪: ٤‬‬

‫ﻳﻚ ﭘﺮﻭﮊﻩ ﺟﺪﻳﺪ ﺑﺎﺯ ﻛﻨﻴﺪ ‪ .‬ﺍﺯ ﻣﻨﻮﻱ ﭘﺮﻭﮊﻩ ﻳﻚ ﻓﺮﻡ ﻭﺏ ﺩﻳﮕـﺮ ﺑـﻪ ﺑﺮﻧﺎﻣـﻪ ﺍﺿـﺎﻓﻪ ﻧﻤﺎﻳﻴـﺪ‪ .‬ﺩﺭ ﺍﻳـﻦ ﺑﺮﻧﺎﻣـﻪ‬
‫ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﺍﻃﻼﻋﺎﺕ ﻣﻮﺟﻮﺩ ﺩﺭ ﻓﺮﻡ ﺍﻭﻝ ﺭﺍ ﺩﺭ ﻓﺮﻡ ﺩﻭﻡ ﻧﻤﺎﻳﺶ ﺩﻫﻴﻢ‪.‬‬

‫ﺭﻭﻱ ﻓﺮﻡ ﺍﻭﻝ ﻳﻚ ‪ TextBox‬ﻭ ﻳﻚ ﺩﻛﻤﻪ ﻗﺮﺍﺭ ﺩﻫﻴﺪ ﻭ ﻧﺎﻡ ﺁﻧﻬﺎ ﺭﺍ ﺑـﻪ ‪ btnSend‬ﻭ ‪ txtSend‬ﺗﻐﻴﻴـﺮ ﺩﻫﻴـﺪ‪.‬‬
‫ﺭﻭﻱ ﺩﻛﻤﻪ ﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻛﻨﻴﺪ ﻭ ﻛﺪ ﺯﻳﺮ ﺭﺍ ﺩﺭ ﺭﺧﺪﺍﺩ ﻛﻠﻴﻚ ﺁﻥ ﺑﻨﻮﻳﺴﻴﺪ‪.‬‬

‫; )‪Server.Transfer("WebForm2.aspx",true‬‬

‫ﺭﻭﻱ ﻓﺮﻡ ﺩﻭﻡ ﻳﻚ ‪ Label‬ﺑﻪ ﻧﺎﻡ ‪ lblReceive‬ﻗﺮﺍﺭ ﺩﻫﻴﺪ ﻭ ﺑﺮ ﺭﻭﻱ ﺻﻔﺤﻪ ﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻧﻤﻮﺩﻩ ﻭ ﺩﺭ ﺭﺧﺪﺍﺩ‬
‫‪ Page_Load‬ﺁﻥ ﺑﻨﻮﻳﺴﻴﺪ ‪:‬‬

‫; )(‪lblReceive.Text = "Received from WebForm1: "+ Request.Form["txtSend"].ToString‬‬

‫) ﻓﺮﺍﻣﻮﺵ ﻧﻜﻨﻴﺪ ﻛﻪ ‪ EnableViewStateMac‬ﻓﺮﻡ ﺍﻭﻝ ﺭﺍ ﺑﺎﻳﺪ ‪ False‬ﻧﻤﺎﻳﻴﺪ‪ .‬ﺑـﻪ ﺳـﻮﺭﺱ ‪ HTML‬ﺻـﻔﺤﻪ‬


‫ﺭﺟﻮﻉ ﻛﻨﻴﺪ‪ .‬ﺍﮔﺮ ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﻛﺎﺭ ﺍﻳﻦ ﻣﻮﺭﺩ ﺑﻪ ﺗﮓ ﺑﺎﻻﻱ ﺻﻔﺤﻪ ﺍﺿﺎﻓﻪ ﻧﺸﺪﻩ ‪ ،‬ﻳﻚ ﺑﺎﺭ ﺍﻳﻦ ﺧﺎﺻـﻴﺖ ﺭﺍ ﺩﺭ‬
‫ﭘﻨﺠﺮﻩ ﺧﻮﺍﺹ ﺧﻮﺍﺹ ‪ True‬ﻛﻨﻴﺪ ﻭ ﺳﭙﺲ ﺁﻧﺮﺍ ‪ False‬ﻧﻤﺎﻳﻴﺪ ﺗﺎ ﺑﻪ ﺻـﻮﺭﺕ ﺧﻮﺩﻛـﺎﺭ ﺑـﻪ ﺳـﻮﺭﺱ ‪HTML‬‬
‫ﺻﻔﺤﻪ ﺍﺿﺎﻓﻪ ﮔﺮﺩﺩ‪ .‬ﺩﺭ ﻏﻴﺮﺍﻳﻨﺼﻮﺭﺕ ﺑﺮﻧﺎﻣﻪ ﺍﺟﺮﺍ ﻧﺨﻮﺍﻫﺪ ﺷﺪ‪( .‬‬

‫"‪<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false‬‬


‫>‪Inherits="ex04.WebForm1" enableViewState="True" enableViewStateMac="False"%‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪14‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ ‪: Execute‬‬

‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ ‪ Execute‬ﻣﻲ ﺗﻮﺍﻥ ﻓﺮﻡ ﻭﺏ ﺩﻭﻡ ﺭﺍ ﺑﺪﻭﻥ ﺗﺮﻙ ﺍﻭﻟﻴﻦ ﻓﺮﻡ ﻭﺏ ‪ ،‬ﭘﺮﺩﺍﺯﺵ ﻛﺮﺩ‪ .‬ﺍﻳﻦ ﻣﻮﺭﺩ‬
‫ﺍﺟﺎﺯﻩ ﻣﻲ ﺩﻫﺪ ﻧﺘﺎﻳﺞ ﺭﺍ ﺍﺯ ﻳـﻚ ﻓـﺮﻡ ﻭﺏ ﺑـﻪ ﻧﺎﺣﻴـﻪ ﺍﻱ ﺩﺭ ﻫﻤـﻴﻦ ﺻـﻔﺤﻪ ﺟـﺎﺭﻱ ﻫـﺪﺍﻳﺖ ﻛﻨـﻴﻢ‪ .‬ﻫﻤﺎﻧﻨـﺪ ﻣﺘـﺪ‬
‫‪ ، Transfer‬ﺑﺎﻳﺪ ‪ EnableViewStateMac‬ﺻﻔﺤﻪ ‪ False‬ﺷﻮﺩ‪.‬‬
‫ﻫﻨﮕﺎﻣﻴﻜﻪ ﻓﺮﻡ ﻫﺎﻱ ﻭﺏ ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ ‪ Execute‬ﺗﺮﻛﻴـﺐ ﻣـﻲ ﻛﻨﻴـﺪ‪ ،‬ﻫـﺮ ﮔﻮﻧـﻪ ﺭﺧـﺪﺍﺩ ‪Post-Back‬‬
‫ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﺩﺭ ﻓﺮﻡ ﺩﻭﻡ ﺳﺒﺐ ﭘﺎﻙ ﺷﺪﻥ ﻓﺮﻡ ﺍﻭﻝ ﻣﻲ ﮔﺮﺩﺩ‪ .‬ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻨﻈـﻮﺭ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻳـﻦ ﺭﻭﺵ ﺗﻨﻬـﺎ‬
‫ﻫﻨﮕﺎﻣﻲ ﻣﻔﻴﺪ ﺍﺳﺖ ﻛﻪ ﻓﺮﻡ ﻭﺏ ﺩﻭﻡ ﺣﺎﻭﻱ ﻛﻨﺘﺮﻟﻲ ﻧﺒﺎﺷﺪ ﻛﻪ ﺭﺧﺪﺍﺩ ‪ Post-Back‬ﺍﻳﻲ ﺭﺍ ﺳﺒﺐ ﺷﻮﺩ‪.‬‬

‫ﻧﻤﺎﻳﺶ ﺻﻔﺤﻪ ﺩﺭ ﻳﻚ ﺻﻔﺤﻪ ﻣﺮﻭﺭﮔﺮ ﺟﺪﻳﺪ ‪:‬‬

‫ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ ‪ window.open‬ﻛﻼﻳﻨﺖ ﺳﺎﻳﺪ ﻣﻲ ﺗﻮﺍﻥ ﻳﻚ ﺻﻔﺤﻪ ﻱ ﺟﺪﻳﺪ ﺩﺭ ﻣﺮﻭﺭﮔﺮ ﺑـﺎﺯﻛﺮﺩ‪ .‬ﺑـﺮﺍﯼ‬
‫ﻣﺜﺎﻝ ‪:‬‬
‫‪Window.Open( "http://www.wrox.com/", "myWindowOne",‬‬
‫;) "‪"toolbar=no, menubar=no, location=no, directories=no‬‬

‫ﺍﻟﺒﺘﻪ ﺍﮔﺮ ﺧﺎﺻـﻴﺖ ‪ Target‬ﺭﺍ ﺩﺭ ﮐﻨﺘـﺮﻝ ‪ HyperLink‬ﻋـﻮﺽ ﮐﻨﻴـﺪ ﻣـﯽ ﺗـﻮﺍﻥ ﻳـﮏ ﭼﻨـﻴﻦ ﮐـﺎﺭﯼ ﺭﺍ ﺑـﺎ‬
‫ﮐﻨﺘﺮﻝ ﻫﺎﯼ ﻭﺏ ﻫﻢ ﺍﻧﺠﺎﻡ ﺩﺍﺩ‪.‬‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪15‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬
‫ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ‬

‫ﺗﻤﺮﻳﻦ ‪:‬‬

‫‪ -١‬ﺍﺯ ﺁﻧﺠﺎﺋﻴﻜﻪ ﺗﺎﺑﻊ ‪ window.open‬ﺁﺭﮔﻮﻣﺎﻧﻬﺎﻱ ﺯﻳﺎﺩﻱ ﺭﺍ ﻣﻲ ﭘﺬﻳﺮﺩ ﻣﻲ ﺗـﻮﺍﻥ ﺁﻧـﺮﺍ ﺑـﻪ ﺻـﻮﺭﺕ ﻳـﻚ‬
‫ﻛﻼﺱ ‪ encapsulate‬ﻛﺮﺩ‪ .‬ﺑﻪ ﻋﻨﻮﺍﻥ ﺗﻤﺮﻳﻦ ﺍﻳﻨﻜﺎﺭ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﻴﺪ‪.‬‬
‫‪ -٢‬ﻳﻚ ﻛﻨﺘﺮﻝ ‪ ValidationSummary‬ﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻗﺮﺍﺭ ﺩﺍﺩﻩ ﻭ ﻣﺜﺎﻝ ﺍﻭﻝ ﻓﺼﻞ ﺭﺍ ﺗﻮﺳﻌﻪ ﺩﻫﻴﺪ‪.‬‬
‫‪ -٣‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻛﻨﺘﺮﻝ ‪ CompareValidator‬ﻓﻴﻠﺪﻫﺎﻱ ﻣﺜﺎﻝ ﺍﻭﻝ ﻓﺼﻞ ﺭﺍ ﻃﻮﺭﻱ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ ﻛـﻪ ﻣﻘـﺪﺍﺭ‬
‫ﻓﻴﻠﺪ ﺩﻭﻡ ﻫﻤﻮﺍﺭﻩ ﻛﻤﺘﺮ ﺍﺯ ﻣﻘﺪﺍﺭ ﻓﻴﻠﺪ ﺍﻭﻝ ﺑﺎﺷﺪ‪.‬‬
‫‪ -٤‬ﺣﺎﻟﺖ ﻛﻨﺘﺮﻝ ﺍﻋﺘﺒﺎﺭ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﻣﺜﺎﻝ ﺳﻮﻡ ﻓﺼﻞ ﺭﺍ ﺗﻮﺳﻌﻪ ﺩﻫﻴﺪ‪.‬‬
‫‪ -٥‬ﻣﺜﺎﻝ ﭼﻬﺎﺭﻡ ﻓﺼﻞ ﺭﺍ ﺑﺎ ‪ Server.Execute‬ﺩﻭﺑﺎﺭﻩ ﻧﻮﻳﺴﻲ ﻧﻤﺎﻳﻴﺪ ﻭ ﻧﺘﻴﺠﻪ ﺭﺍ ﻣﻘﺎﻳﺴﻪ ﻛﻨﻴﺪ‪.‬‬
‫‪ -٦‬ﺑﺮﺍﻱ ﺍﻳﻨﻜﻪ ‪ URL‬ﻣﺘﺪ ‪ window.open‬ﺑﻪ ﺻﻮﺭﺕ ﻣﺘﻐﻴﺮ ﺑﺎﺷﺪ ﻭ ﺑﺘﻮﺍﻥ ﺑﺎ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﯽ ﺁﻧﺮﺍ ﺗﻨﻈـﻴﻢ‬
‫ﮐﺮﺩ ﭼﻪ ﮐﺎﺭﯼ ﺭﺍ ﺑﺎﻳﺪ ﺍﻧﺠﺎﻡ ﺩﺍﺩ؟‬

‫ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ‬
‫ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ ‪ :‬ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )‪([email protected]‬‬
‫‪16‬‬ ‫ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ‪ASP.NET‬‬

You might also like