CommandName و CommandArgument در ASP.NET

در این مقاله نشان می دهیم که چگونه سطر گرید ویو، Button،LinkButton یا ImageButton ای که کلیک شده است را در رویدادهای OnClick و OnRowCommand مربوط به آن تشخیص دهیم. زمانی که یک Button، LinkButton یا ImageButton مشخص شد، به راحتی می توانیم ID، CommandName و CommandArgument آن را به دست بیاوریم.
CommandName

به دست آوردن GridView Row و Row Index در رویداد RowCommand

در زیر یک کنترل GridView با ButtonField و یک رویداد OnRowCommand داریم.

 حال اگر یکی از Buttonها کلیک شود، رویداد OnRowCommand اجرا می شود.

سی شارپ

 VB.Net

 RowIndex مربوط به سطر GridView در property با نام CommandArgument نگه داری می شود. بنابراین با این اندیس می توانید رفرنس سطر GridView را دریافت نمایید.

به دست آوردن GridView Row و Row Index در رویداد کلیک Button در TemplateField

 زمانی که Button کلیک می شود، رویداد کلیک اجرا می شود.

سی شارپ

 VB.Net

 توجه داشته باشید که در این جا، sender را برای به دست آوردن GridView Row تبدیل (cast)کردیم. Sender یک کنترل Button است، بنابراین والد یک کنترل Button، Cell می باشد و والد Cell خود GridView Row می باشد.

Button ——->GridView Cell ——->GridView Row

همین کار را برای LinkButton و ImageButton نیز انجام می دهیم.

به دست آوردن CommandArgument در رویداد کلیک Button در TemplateField

 در بسیاری از مواقع، ما به property های یک Button مانند CommandName و CommandArgument نیاز داریم. بنابراین باید رفرنس آن را از طریق پارامتر sender به دست آوریم.

سی شارپ

 VB.Net

 همین کار را می توان با ایجاد یک شی و تخصیص sender به آن البته بعد از casting، برای LinkButton و ImageButtonنیز انجام داد.

چندین مقدار در CommandArgument

در حال حاضر، به طور پیش فرض هیچ propertyای برای آن وجود ندارد و ما باید از یک رشته الحاق شده استفاده کرده و سپس آن را به آرایه ای split کنیم. GridView زیر را در نظر بگیرید:

 حال برای به دست آوردن این مقادیر، باید به صورت زیر عمل کنیم:

سی شارپ

 VB.Net

 همانطور که مشاهده می کنید ما به سادگی مقادیر را بر اساس جداکننده (در این جا کاما)، split کرده و آرایه ای از رشته ها ایجاد نمودیم.

CommandName و CommandArgument در ASP.NET
5 (100%) 2 رایs

(434 نوشته)

C# Programmer , Web Design And Developer , MVC , ASP.NET

فکر شما چیست؟

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *

حاصل جمع اعداد را وارد کنید : *