Asp Net ch05 Final
Asp Net ch05 Final
ﻣﻘﺪﻣﻪ :
ﺍﻳﻦ ﻓﺼﻞ ﺩﺭ ﺣﻘﻴﻘﺖ ﻗﺴﻤﺖ ﺩﻭﻡ ﻓﺼﻞ ﭘﻴﺸﻴﻦ ﻣـﻲ ﺑﺎﺷـﺪ .ﺩﺭ ﻓﺼـﻞ ﺟـﺎﺭﻱ ﻣـﺮﻭﺭﻱ ﺧـﻮﺍﻫﻴﻢ ﺩﺍﺷـﺖ ﺑـﺮ
ﺑﺎﻗﻴﻤﺎﻧﺪﻩ ﻱ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﻣﻬﻢ ﺳﺮﻭﺭ ﻭﺏ .
ﻳﻜﻲ ﺍﺯ ﻣﻬﻤﺘﺮﻳﻦ ﻣﺮﺍﺣﻞ ﺩﺭﻳﺎﻓﺖ ﺩﺍﺩﻩ ﻫﺎ ﺍﺯ ﻛﺎﺭﺑﺮ ﺍﻳﻦ ﺍﺳﺖ ﻛﻪ ﺍﻃﻤﻴﻨـﺎﻥ ﺣﺎﺻـﻞ ﻛﻨـﻴﻢ ﺁﻳـﺎ ﺩﺍﺩﻩ ﻫـﺎﻱ ﻭﺍﺭﺩ
ﺷﺪﻩ ﺍﺯ ﻃﺮﻑ ﺍﻭ ﻣﻌﺘﺒﺮ ﻫﺴﺘﻨﺪ ﻳﺎ ﺧﻴﺮ؟ ﺍﺻﻮﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺑﺪﻳﻦ ﺷﺮﺡ ﻣﻲ ﺑﺎﺷﻨﺪ :ﺁﻳﺎ ﻛـﺎﺭﺑﺮ ﭼﻴـﺰﻱ ﺭﺍ ﻭﺍﺭﺩ
ﻛﺮﺩﻩ ﺍﺳﺖ ؟ ﺁﻳﺎ ﻧﻮﻉ ﺻﺤﻴﺤﻲ ﺍﺯ ﺩﺍﺩﻩ ﺭﺍ ﻭﺍﺭﺩ ﻛﺮﺩﻩ ﺍﺳﺖ ) ﺑﺮﺍﻱ ﻣﺜﺎﻝ ﺁﺩﺭﺱ ﺍﻳﻤﻴـﻞ ( .ﺁﻳـﺎ ﺩﺍﺩﻩ ﻭﺭﻭﺩﻱ ﺩﺭ
ﻳﻚ ﺑﺎﺯﻩ ﺧﺎﺹ ﻗﺮﺍﺭ ﺩﺍﺭﺩ؟ ﻭ ﺍﻣﺜﺎﻝ ﺍﻳﻨﻬﺎ.
ASP.NETﻳﻚ ﺳﺮﻱ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺍﺭﺯﻳﺎﺑﻲ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺭﺍ ﻗﺒﻞ ﺍﺯ ﺍﻳﻨﻜﻪ ﺩﺍﺩﻩ ﻫﺎ ﺑﻪ ﺳﺮﻭﺭ ﻓﺮﺳﺘﺎﺩﻩ
ﺷﻮﻧﺪ ،ﺩﺭ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﻣﻬﻴﺎ ﻛﺮﺩﻩ ﺍﺳﺖ ﻭ ﺑﻪ ﺍﻳﻦ ﺻﻮﺭﺕ ﺑﺪﻭﻥ ﺩﺭﮔﻴﺮ ﺷﺪﻥ ﺳﺮﻭﺭ ﻭ ﺗﺤﻤﻴﻞ ﺑﺎﺭ ﺍﺿﺎﻓﻲ ﺑﻪ
ﺁﻥ ﺍﻳﻨﻜﺎﺭ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﺩ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
1 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺩﺭ ﺳﻤﺖ ﻛﻼﻳﻨﺖ ﺗﻮﺳﻂ ﻛﺘﺎﺑﺨﺎﻧﻪ ﺍﻱ ﻛﻪ ﺩﺭ ﻓﺎﻳﻞ WebUIValidation.JS
ﻗﺮﺍﺭ ﺩﺍﺭﺩ ﻭ ﺑﻪ ﺻﻮﺭﺕ ﻣﺠﺰﺍ ﺑﺮ ﺭﻭﻱ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎﻱ ﻛﻼﻳﻨﺖ ﺩﺭﻳﺎﻓﺖ ﺧﻮﺍﻫﺪ ﺷـﺪ ،ﺻـﻮﺭﺕ ﻣـﻲ ﮔﻴـﺮﺩ .ﻧﻜﺘـﻪ
ﺟﺎﻟﺐ ﺍﻳﻨﺠﺎ ﺍﺳﺖ ﻛﻪ ﺣﺘﻲ ﺍﮔﺮ ﺑﺪﻟﻴﻞ ﭘﺸﺘﻴﺒﺎﻧﯽ ﻧﮑﺮﺩﻥ ﻣﺮﻭﺭﮔﺮ ﻭﺏ ﮐﺎﺭﺑﺮ ﺍﺯ ) Jscriptﻧﮕﺎﺭﺵ ﻫﺎﻱ ﭘﺎﻳﻴﻦ ﺗـﺮ
ﺍﺯ ٤ﺍﻳﻨﺘﺮﻧﺖ ﺍﻛﺴﭙﻠﻮﺭﺭ ( ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺳﻤﺖ ﮐﻼﻳﻨﺖ ﻣﻬﻴﺎ ﻧﺒﻮﺩ ،ﺑﻪ ﺻﻮﺭﺕ ﺧﻮﺩﻛﺎﺭ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺳﻤﺖ ﺳﺮﻭﺭ
ﻣﻬﻴﺎ ﻣﻲ ﮔﺮﺩﺩ ﻭ ﺩﺭ ﻫﺮ ﺣﺎﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﺻﻮﺭﺕ ﺧﻮﺍﻫﺪ ﮔﺮﻓﺖ.
ﺩﺭ ﺟﺪﻭﻝ ﺯﻳﺮﺷﺶ ﻛﻨﺘﺮﻝ ﻣﻮﺟﻮﺩ ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭﺩﺍﺩﻩ ﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ ،ﺗﻮﺿﻴﺢ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﻧﺪ .ﺍﻳﻦ
ﻧﻮﻉ ﻛﻨﺘﺮﻝ ﻫﺎ ﻣﻘﺪﺍﺭ ﻛﻨﺘﺮﻟﻲ ﺭﺍ ﻛﻪ ﺩﺭ ﺧﺎﺻﻴﺖ ControlToValidateﺁﻧﻬﺎ ﻣﺸﺨﺺ ﺷـﺪﻩ ﺍﺳـﺖ ﺭﺍ ﺑﺮﺭﺳـﻲ
ﻣﻲ ﻧﻤﺎﻳﻨﺪ.
ﻛﺎﺭﺑﺮﺩ ﻛﻨﺘﺮﻝ
ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﻛﻨﺘﺮﻝ ﺣﺎﻭﻱ ﺩﺍﺩﻩ ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ) .ﺁﻳﺎ ﮐﺎﺭﺑﺮ
RequiredFieldValidator
ﭼﻴﺰﯼ ﺭﺍ ﻭﺍﺭﺩ ﮐﺮﺩﻩ ﺍﺳﺖ ؟ (
ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺩﺍﺩﻩ ﻱ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﺎ ﺩﺍﺩﻩ ﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﻛﻨﺘﺮﻝ
CompareValidator
ﺩﻳﮕﺮ ﺗﻄﺎﺑﻖ ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ.
ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺁﻳﺘﻢ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﻴﻦ ﺩﻭ ﻣﻘﺪﺍﺭ ﺗﻌﺮﻳﻒ ﺷﺪﻩ ﻗﺮﺍﺭ
RangeValidator
ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ.
ﺑﺮﺭﺳﻲ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺁﻳﺎ ﺩﺍﺩﻩ ﻭﺍﺭﺩ ﺷﺪﻩ ﺑﺎ ﻓﺮﻣﺖ ﻣﺸﺨﺺ ﺷﺪﻩ ﻣﻄﺎﺑﻘﺖ
RegularExpressionValidator
ﺩﺍﺭﺩ ﻳﺎ ﺧﻴﺮ.
ﺍﻋﺘﺒﺎﺭ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﺭﺍ ﺗﻮﺳﻂ ﺍﺳﻜﺮﻳﭙﺘﻲ ﻛﻼﻳﻨﺖ ﺳﺎﻳﺪ ﻳﺎ ﺳﻤﺖ
CustomValidator
ﺳﺮﻭﺭ ﻭ ﻳﺎ ﻫﺮ ﺩﻭ ﺍﻧﺠﺎﻡ ﻣﻲ ﺩﻫﺪ.
ﺗﻤﺎﻡ ﻣﻮﺍﺭﺩ ﺑﺮﺭﺳﻲ ﺷﺪﻩ ﺭﺍ ﺩﺭ ﻳﻚ ﻣﻜﺎﻥ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ ﻳﺎ ﺑﻪ ﺻﻮﺭﺕ
validationSummary
ﻛﻠﻲ ﻓﻘﻂ ﻳﻚ ﭘﻴﻐﺎﻡ ﺭﺍ ﻧﻤﺎﻳﺶ ﻣﻲ ﺩﻫﺪ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
2 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺑﺮﺍﻱ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺑﺎﻳﺪ ﻣﺮﺍﺣﻞ ﺯﻳﺮ ﻃﻲ ﺷﻮﺩ :
-١ﺗﺮﺳـــﻴﻢ ﻭ ﻳـــﺎ ﻗـــﺮﺍﺭ ﺩﺍﺩﻥ ﻳـــﻚ ﻛﻨﺘـــﺮﻝ ﺍﻋﺘﺒـــﺎﺭ ﻭﺭﻭﺩﻱ ﺭﻭﻱ ﻓـــﺮﻡ ﻭ ﺗﻨﻈـــﻴﻢ ﻛـــﺮﺩﻥ ﺧﺎﺻـــﻴﺖ
ControlToValidateﺁﻥ ﺑــﻪ ﻛﻨﺘﺮﻟــﻲ ﻛــﻪ ﻣــﻲ ﺧﻮﺍﻫﻴــﺪ ﺗﻌﻴــﻴﻦ ﺍﻋﺘﺒــﺎﺭ ﺷــﻮﺩ .ﺍﮔــﺮ ﺷــﻤﺎ ﺍﺯ ﻛﻨﺘــﺮﻝ
CompareValidatorﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﻛﻨﻴﺪ ،ﺑﺎﻳﺪ ﺧﺎﺻﻴﺖ ControlToCompareﺭﺍ ﻧﻴﺰ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ.
-٢ﺧﺎﺻﻴﺖ ErrorMessageﺭﺍ ﺑﻪ ﭘﻴﻐـﺎﻣﻲ ﻛـﻪ ﻣـﻲ ﺧﻮﺍﻫﻴـﺪ ﻫﻨﮕﺎﻣﻴﻜـﻪ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﻣﻌﺘﺒـﺮ ﻧﻴﺴـﺖ
ﻧﻤﺎﻳﺶ ﺩﻫﺪ ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ.
-٣ﺧﺎﺻﻴﺖ Textﺁﻧﺮﺍ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻥ ﭘﻴﻐﺎﻣﻲ ﻫﻨﮕﺎﻣﻴﻜﻪ ﺧﻄﺎ ﺭﺥ ﻣﻲ ﺩﻫﺪ ،ﺗﻨﻈﻴﻢ ﻛﻨﻴﺪ .ﺍﺯ ﺍﻳـﻦ ﻣـﻮﺭﺩ
ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺩﺍﺩﻥ ﺗﻮﺿﻴﺤﺎﺕ ﻃﻮﻻﻧﻲ ﺗﺮ ﺍﺯ ﺧﺎﺻﻴﺖ ErrorMessageﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﺷﻮﺩ.
-٤ﺩﺭ ﺻﻮﺭﺕ ﻧﻴﺎﺯ ﻳﻚ ﻛﻨﺘﺮﻝ ValidationSummaryﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻭﺏ ﺑﺮﺍﻱ ﻧﻤﺎﻳﺶ ﺗﻤﺎﻡ ﭘﻴﻐـﺎﻡ ﻫـﺎﻱ
ﺧﻄﺎﻱ ﺣﺎﺻﻞ ﺍﺯ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ،ﺗﺮﺳﻴﻢ ﻛﻨﻴﺪ.
-٥ﺗﻨﻬﺎ ﻭﺟﻮﺩ ﻛﻨﺘﺮﻟﻲ ﻛﻪ ﺳﺒﺐ ﻓﺮﺳﺘﺎﺩﻩ ﺷﺪﻥ ﻳﻚ ﺭﺧﺪﺍﺩ Post-Backﻣﻲ ﺷﻮﺩ ،ﺳﺒﺐ ﺍﻧﺠـﺎﻡ ﺑﺮﺭﺳـﻲ
ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﻣﻲ ﮔﺮﺩﺩ .ﭘﺲ ﻭﺟﻮﺩ ﻳﻚ ﭼﻨﻴﻦ ﻛﻨﺘﺮﻟـﻲ ) ﻣﺎﻧﻨـﺪ ﻳـﻚ ﺩﻛﻤـﻪ ( ﺭﻭﻱ ﻓـﺮﻡ ﺩﺭ ﺍﻳـﻦ ﺣﺎﻟـﺖ
ﺿﺮﻭﺭﻱ ﺍﺳﺖ.
ﺑـــﺮﺍﻱ ﻧﻤـــﺎﻳﺶ ﺧﻄﺎﻫـــﺎﻱ ﺗﻌﻴـــﻴﻦ ﺍﻋﺘﺒـــﺎﺭ ﺑـــﻪ ﺻـــﻮﺭﺕ ﻳـــﻚ MessageBoxﺧﺎﺻـــﻴﺖ ﻛﻨﺘـــﺮﻝ
ValidationSummaryﺑﻪ ﻧﺎﻡ ShowMessageﺭﺍ Trueﻛﻨﻴﺪ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
3 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺍﺯ ﺯﺑﺎﻥ Pattern-matchingﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒـﺎﺭ ﺩﺍﺩﻩ ﻱ ﻭﺭﻭﺩﻱ ﺍﺳـﺘﻔﺎﺩﻩ ﻣـﻲ ﻛﻨـﺪ ) ﻃﻼﻋـﺎﺕ
ﻭﺳﻴﻌﺘﺮ ﺭﺍ ﺩﺭ ﺍﻳﻦ ﺯﻣﻴﻨﻪ ﻣﻲ ﺗﻮﺍﻥ ﺩﺭ MSDNﺑﺪﺳﺖ ﺁﻭﺭﺩ(.
ﻳﻚ ﻛﻨﺘﺮﻝ ﺭﻭﻱ ﺻﻔﺤﻪ ﻣﻲ ﺗﻮﺍﻧﺪ ﺍﺯ ﭼﻨﺪﻳﻦ ﻛﻨﺘﺮﻝ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺍﺳﺘﻔﺎﺩﻩ ﻛﻨﺪ .ﺑﺮﺍﻱ ﻣﺜﺎﻝ TextBoxﺍﻳﻲ ﻛﻪ
ﺍﻳﻤﻴـــﻞ ﻛـــﺎﺭﺑﺮ ﺭﺍ ﺩﺭﻳﺎﻓـــﺖ ﻣـــﻲ ﻛﻨـــﺪ ﻣـــﻲ ﺗﻮﺍﻧـــﺪ ﺑـــﻪ ﻛﻨﺘـــﺮﻝ RequiredFieldValidatorﻭ ﻛﻨﺘـــﺮﻝ
RegularExpressionValidatorﻣﺘﺼﻞ ﺑﺎﺷﺪ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
4 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﻣﻄﺎﺑﻖ ﺷﻜﻞ -٢ﺩﻭ ، TextBoxﺩﻭ Labelﻭ ﻳﻚ ﻋﺪﺩ Buttonﺭﻭﻱ ﺻﻔﺤﻪ ﻗﺮﺍﺭ ﺩﻫﻴﺪ .ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﻣﻘـﺪﺍﺭ
ﻋﺪﺩﻱ TextBoxﺍﻭﻝ ﺭﺍ ﺑﻪ ﻣﻘﺪﺍﺭ ﻋﺪﺩﻱ TextBoxﺩﻭﻡ ﺗﻘﺴﻴﻢ ﻛﻨﻴﻢ ﻭ ﺣﺎﺻﻞ ﺭﺍ ﺩﺭ Labelﻧﻬـﺎﻳﻲ ﻧﻤـﺎﻳﺶ
ﺩﻫﻴﻢ.
ﻧﺎﻡ TextBoxﻫﺎ ﺭﺍ )ﺍﺯ ﺳﻤﺖ ﭼﭗ( ﺑﻪ txtVal1ﻭ txtVal2ﻭ ﺩﻛﻤﻪ ﺭﺍ ﺑﻪ btnCalcﻭ Labelﻧﻬـﺎﻳﻲ ﺭﺍ
ﺑﻪ lblResultﺗﻐﻴﻴﺮ ﺩﻫﻴﺪ.
ﻣﻲ ﺧﻮﺍﻫﻴﻢ ﭼﻚ ﻛﻨﻴﻢ ﻛﻪ ﺁﻳﺎ ﻛﺎﺭﺑﺮ ﺩﺭ ﻫﺮ ﺩﻭ TextBoxﭼﻴﺰﻱ ﻭﺍﺭﺩ ﻛﺮﺩﻩ ﺍﺳﺖ ﻳﺎ ﺧﻴـﺮ ﻭ ﺁﻳـﺎ ﻣﺤﺘﻮﻳـﺎﺕ
TextBoxﺩﻭﻡ ﺍﺯ ﺻﻔﺮ ﺑﺰﺭﮔﺘﺮ ﻭ ﻛﻮﭼﻜﺘﺮ ﺍﺯ ١٠٠٠ﻣﻲ ﺑﺎﺷﺪ؟
ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻨﻈﻮﺭ ﺩﻭ ﻛﻨﺘـﺮﻝ RequiredFieldValidatorﻭ ﻳـﻚ ﻛﻨﺘـﺮﻝ RangeValidatorﺭﺍ ﺭﻭﻱ ﻓـﺮﻡ
ﻗﺮﺍﺭ ﺩﻫﻴﺪ )ﺷﻜﻞ .( ٣
ﺷﻜﻞ -٣ﻗﺮﺍﺭ ﺩﺍﺩﻥ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ﺗﻌﻴﻴﻦ ﺍﻋﺘﺒﺎﺭ ﺭﻭﻱ ﻓﺮﻡ ﻭﺏ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
5 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
6 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺷﻜﻞ -٦ﻧﻤﺎﻱ ﻓﺮﻡ ﭘﺲ ﺍﺯ ﺗﻨﻈﻴﻢ ﺧﺎﺻﻴﺖ 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
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
9 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﺍﮔﺮ ﻛﺎﺭﺑﺮ ﺭﻭﻱ ﺩﻛﻤﻪ ﻛﻨﺴﻞ ﻛﻠﻴﻚ ﻛﻨﺪ ﻭ ﺩﺭ ﺻﻮﺭﺗﻴﻜﻪ ﭼﻴﺰﻱ ﺭﺍ ﻭﺍﺭﺩ ﻧﻜﺮﺩﻩ ﺑﺎﺷﺪ ﺑـﻪ ﺭﺍﺣﺘـﻲ
ﺑﻪ ﺻﻔﺤﻪ ﻱ ! Sorryﺭﺍﻫﻨﻤﺎﻳﻲ ﻣﻲ ﺷﻮﺩ! ) ﺍﻳﻦ ﺑﺮﻧﺎﻣﻪ ﺭﺍ ﺑﻴﺸﺘﺮ ﻣﻲ ﺗﻮﺍﻥ ﺗﻮﺳﻌﻪ ﺩﺍﺩ(...
ﺍﮔــﺮ ﻫﻴﭽﻜــﺪﺍﻡ ﺍﺯ ﻛﻨﺘــﺮﻝ ﻫــﺎﻱ ﺗﻌﻴــﻴﻦ ﺍﻋﺘﺒــﺎﺭ ﻧﻴــﺎﺯ ﺷــﻤﺎ ﺭﺍ ﺑــﺮﺁﻭﺭﺩﻩ ﻧﻤــﻲ ﻛﻨﻨــﺪ ﻣــﻲ ﺗﻮﺍﻧﻴــﺪ ﺍﺯ ﻛﻨﺘــﺮﻝ
CustomValidatorﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ .ﺍﮔﺮ ﻻﺯﻡ ﺍﺳﺖ ﭘﺮﺩﺍﺯﺵ ﺳﻤﺖ ﺳﺮﻭﺭ ﺍﻧﺠﺎﻡ ﺷﻮﺩ ،ﻛﺪ ﺗﻌﻴـﻴﻦ ﺍﻋﺘﺒـﺎﺭ ﺭﺍ
ﺩﺭ ﺭﺧــــﺪﺍﺩ ServerValidateﻗــــﺮﺍﺭ ﺩﻫﻴــــﺪ .ﺑــــﺮﺍﻱ ﺗﻌﻴــــﻴﻦ ﺍﻋﺘﺒــــﺎﺭ ﺳــ ـﻤﺖ ﻛﻼﻳﻨــــﺖ ﺧﺎﺻــــﻴﺖ
ClientValidationFunctionﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺭﺍ ﺑﺎﻳﺪ ﺗﻨﻈﻴﻢ ﻛﺮﺩ.
ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ﻗﺼﺪ ﺩﺍﺭﻳﻢ ﺑﺮﺭﺳﻲ ﻛﻨﻴﻢ ﺁﻳﺎ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ ﻳﻚ ﻋﺪﺩ ﺍﻭﻝ ﺍﺳﺖ ﻳﺎ ﺧﻴﺮ.
ﺑــﺮﺍﻱ ﺍﻳــﻦ ﻣﻨﻈــﻮﺭ ﻳــﻚ ﺩﻛﻤــﻪ ﺑــﻪ ﻧــﺎﻡ btnTestﻭ ﻳــﻚ TextBoxﺑــﻪ ﻧــﺎﻡ txtPrimeﻭ ﻳــﻚ ﻛﻨﺘــﺮﻝ
CustomValidatorﺑﻪ ﻧﺎﻡ vldtxtPrimeﺭﺍ ﺭﻭﻱ ﻓﺮﻡ ﻗﺮﺍﺭ ﺩﻫﻴﺪ )ﺷﻜﻞ . (٩
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
10 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﻱ ﺭﺧﺪﺍﺩﻫﺎﻱ ﺍﻳﻦ ﻛﻨﺘﺮﻝ ﻇﺎﻫﺮ ﻣﻲ ﺷﻮﺩ ) ﺷﻜﻞ . ( ١٠ﺍﻛﻨﻮﻥ ﺩﺭ ﻗﺴﻤﺖ ServerValidateﺩﻭﺑﺎﺭ ﻛﻠﻴﻚ ﻛﻨﻴﺪ.
ﺭﺧﺪﺍﺩ ﺯﻳﺮ ﺑﻪ ﺻﻮﺭﺕ ﺍﺗﻮﻣﺎﺗﻴﻚ ﺑﻪ ﺑﺮﻧﺎﻣﻪ ﺍﺿﺎﻓﻪ ﻣﻲ ﺷﻮﺩ:
private void vldtxtPrime_ServerValidate(object source,
)System.Web.UI.WebControls.ServerValidateEventArgs args
ﺩﺭ ﺍﻳﻦ ﺭﺧﺪﺍﺩ ﻋﻤﻠﻴﺎﺕ ﭼﻚ ﻛﺮﺩﻥ ﻭﺭﻭﺩﻱ ﻛﺎﺭﺑﺮ ﺻﻮﺭﺕ ﻣﻲ ﮔﻴﺮﺩ .ﺑـﺮﺍﻱ ﺗﻜﻤﻴـﻞ ﻛـﺪ ﻟﻄﻔـﺎ ﺑـﻪ ﻛـﺪ ﻫﻤـﺮﺍﻩ
ﻣﺮﺍﺟﻌﻪ ﻧﻤﺎﻳﻴﺪ.
) ﺑﻬﺘﺮ ﺍﺳﺖ ﺧﺎﺻﻴﺖ ErrorMessageﺍﻳﻦ ﻛﻨﺘﺮﻝ ﺭﺍ ﺑﻪ ﻳﻚ ﻋﺒﺎﺭﺕ ﻣﻌﻨﺎ ﺩﺍﺭ ﺗﺒﺪﻳﻞ ﻛﻨﻴﺪ( .
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
11 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺑﺮﺍﻱ ﺣﺮﻛﺖ ﺑﻴﻦ ﺻﻔﺤﺎﺕ ﻣﺨﺘﻠـﻒ ASP.NET ،ﺭﻭﺵ ﻫـﺎﻱ ﻣﺨﺘﻠﻔـﻲ ﺭﺍ ﺍﺭﺍﺋـﻪ ﺩﺍﺩﻩ ﺍﺳـﺖ ﻛـﻪ ﺩﺭ ﺍﺩﺍﻣـﻪ
ﺑﺮﺭﺳﻲ ﺧﻮﺍﻫﻨﺪ ﺷﺪ.
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
12 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺑﺎ ﺗﻨﻈﻴﻢ ﻛﺮﺩﻥ ﺧﺎﺻﻴﺖ NavigateURLﻛﻨﺘﺮﻝ ، HyperLinkﺑﺎ ﻛﻠﻴـﻚ ﻛـﺎﺭﺑﺮ ﺑـﺮ ﺭﻭﻱ ﺍﻳـﻦ ﻛﻨﺘـﺮﻝ ﺑـﻪ
ﺻﻔﺤﻪ ﻱ ﻣﺸﺨﺺ ﺷﺪﻩ ،ﻫﺪﺍﻳﺖ ﻣﻲ ﮔﺮﺩﺩ .ﺍﻳـﻦ ﻛﻨﺘـﺮﻝ ﺳـﺒﺐ ﺍﻧﺠـﺎﻡ ﻫﻴﭽﮕﻮﻧـﻪ ﺭﺧـﺪﺍﺩﻱ ﺩﺭ ﺳـﻤﺖ ﺳـﺮﻭﺭ
ﻧﻤــﻲ ﮔــﺮﺩﺩ .ﺩﺭ ﺻــﻮﺭﺕ ﻧﻴــﺎﺯ ﺑــﻪ ﭘــﺮﺩﺍﺯﺵ ﺭﺧــﺪﺍﺩ ﻛﻠﻴــﻚ ﻣــﻲ ﺗــﻮﺍﻥ ﺍﺯ ﻛﻨﺘــﺮﻝ ﻫــﺎﻱ LinkButtonﻭ ﻳــﺎ
ImageButtonﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ .ﺩﺭ ﺍﻳﻦ ﺣﺎﻟﺖ ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﺗﺎﺑﻊ Response.Redirectﺑﺮﺍﻱ ﻫﺪﺍﻳﺖ ﻛـﺎﺭﺑﺮ ﺑـﻪ
ﺻﻔﺤﻪ ﺍﻱ ﺩﻳﮕﺮ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ.
ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺍﻳﻦ ﺗﺎﺑﻊ ﻳﺎ ﻣﺘـﺪ ﺑﺴـﻴﺎﺭ ﺷـﺒﻴﻪ ﺑـﻪ ﺍﺳـﺘﻔﺎﺩﻩ ﺍﺯ 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ﺁﻥ ﺑﻨﻮﻳﺴﻴﺪ :
ﻛﻠﻴﻪ ﺣﻘﻮﻕ ﺍﻳﻦ ﺟﺰﻭﻩ ﺁﻣﻮ ﺯﺷﻲ ﻣﺘﻌﻠﻖ ﺑﻪ ﺳﺎﻳﺖ ﺁﻣﻮﺯﺵ ﺍﻟﻜﺘﺮﻭﻧﻴﻜﻲ ﭘﺮﺷﻴﺎ ﻣﻴﺒﺎﺷﺪ
ﺍﺳﺘﺎﺩ ﺩﻭﺭﻩ :ﻭﺣﻴﺪ ﻧﺼﻴﺮﻱ )([email protected]
14 ﺟﺰﻭﻩ ﺁﻣﻮﺯﺷﻲ ﻛﻼﺱ ASP.NET
ﺷﺮﻛﺖ ﭘﻴﺸﮕﺎﻣﺎﻥ ﻓﻨﺎﻭﺭﻱ
ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻣﺘﺪ 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