ورود / ثبت نام
0
0

نحوه کار با CommandArgument و Commandname + فیلم آموزشی

365 بازدید
CommandArgument

CommandArgument

در این مقاله میریم به سراغ کار با CommandArgument و Commandname که در ابزار های ASP.NET کاربرد بسیار دارند ، مثالی که میتونم براتون بزنم وقتی شما اطلاعات را در یک DataGrid نمایش میدهید خوب نیاز است اطلاعات را حذف و ویرایش کنید و یا هر عملیاتی که مدنظر دارید.این آموزش را به زبان سی شارپ و ASP.NET طراحی و برنامه نویسی میکنیم یک فیلم آموزشی نیز در ادامه جهت هرچه بهتر درک مطلب قرار داده شده است.

یک پروژه ASP.NET Webform ایجاد کرده و با هر تکنولوژی که مد نظر دارید به دیتابیس متصل بشید.(در این مطلب از LINQ و EntityFramework استفاده میکنیم.)

CommandArgument

مهم نیست دیتابیس شما چند فیلد داشته باشه فقط توجه کنید از یک ID منحصر به فرد برای کلید اصلی PrimeryKey استفاده کنید.(دریک کلام تکراری نباشه)

ما از طریق modal به پروژه متصل میشویم و توسط کد زیر اطلاعات را در GridView نمای میدهیم.دقت کنید استفاده از Command Argument و Command name در تمامی ابزار های که وظیفه نمایش اطلاعات را دارند قابل استفاده است لیستی از آن را میتوانید ببینید :

  • DataGridView
  • ListView
  • Repater
  • CheckBoxList
  • RadioButtonList
  • DataList

چون تمامی ابزار های فوق از رویداد RowCommand پیروی میکنند.

خوب خیلی دور نشیم از آموزش وقتی تمامی ارتباطات شما کامل شد و اطلاعات نمایش داده شد در DataGridView نیاز داریم به یک TemplateField که باید آن را به DataGridView اضافه کنیم.طبق تصویر زیر میتوانید این کار را انجام دهید.همچنین از کد قرار داده شده نیز میتوانید استفاده کنید.

CommandArgument

همانند تصویر فوق روی EditColumns کلیک میکنیم و فرم زیر نمایش داده میشود.

CommandArgument

در تصویر مشاهده میکنید که روی TemplateField کلیک شده و برای اضافه کردن آن روی دکمه Add کیک کنید.و باید کد زیر به DataGrid شما اضافه شده باشد.

  <asp:TemplateField>

  </asp:TemplateField>

تا اینجا ما تواستیم به دیتابیس متصل بشیم ، اطلاعات در دیتاگرید load کنیم و یک TemplateField بسازیم حالا کاربرد این بخشی که اضافه کردیم چیست : خوب ما برای Edit و یا حذف نیاز داریم که یک Button داشته باشیم نمیتوانیم از Button به صورت مستقیم در Grid استفاده کنیم باید برای استفاده یک فضای ایجاد کنیم.

[divider style=”normal” top=”20″ bottom=”20″] [box type=”shadow” align=”” class=”” width=””]پیشنهاد میکنم : دوره آموزشی طراحی و برنامه نویسی پورتال خبری در ASP.NET[/box] [divider style=”normal” top=”20″ bottom=”20″]

در بین کد TemplateField یک تگ اضافه میکنیم به نام : ItemTemplate

مانند کد زیر :

                    <asp:TemplateField>
                        <ItemTemplate>

                        </ItemTemplate>
                    </asp:TemplateField>

حال میتوانید از بخش ابزار ها یک Button در TemplateField قرار بدید.مانند کد زیر :

                    <asp:TemplateField>
                        <ItemTemplate>
				<asp:LinkButton runat="server" ID="edit" Text="ویرایش"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>

میرسیم به بخش اصلی یعنی استفاده از Command Argument و Command name این دو هر کدام وظیفه ای دارند که توضیح خواهم داد.

Command Argument : وظیفه ارسال یک پارامتر ( مانند ID )

Command name:ما نیاز داریم پارامتر را با یک اسم دریافت کنیم و عملیات مورد نظر را انجام بدیم.

برای نحوه استفاده میتوانید به کد زیر نگاه کنید.

                    <asp:TemplateField>
                        <ItemTemplate>
				<asp:LinkButton runat="server" ID="edit" Text="ویرایش" CommandArgument='<%#Eval("ID")%>' CommandName="DoEdit" ></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>

به مقدار CommandArgument='<%#Eval(“ID”)%>’ دقت کنید ، ID فیلدی است که در هنگام پر کردن دیتاگرید باید حتما فراخوانی شود.(میتواند هر فیلدی باشد فقط باید فراخوانی شود همانطور که در بالاگفتم فقط تکراری نباشد).

بسیار خوب تا اینجا امیدوارم بدون مشکل پیش رفته باشید هرچند سعی کردم خیلی از مباحث را باز کنیم تا متوجه موضوع بشید.حالا باید در رویداد RowCommand کد نویسی را آغاز کنیم برای دریافت مقدار پاس داده شده.رویداد را ایجاد کنید و به کد زیر دقت کنید تا توضیح کامل را بهتون بدم.

protected void gvShowRole_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "DoEdit":
                    {
                        int Id = int.Parse(e.CommandArgument.ToString());
                        var role = db.Tbl_Role.First(p => p.RoleID == roleId);
                        txtTitleName.Text = role.RoleTitle;                     
                        break;
                    }
            }
        }

switch (e.CommandName) : از طریق این خط کد روی CommandName که در گریدویو ساختیم switch میکنیم.

case “DoEdit”: انتخاب نام CommandName که در گریدو نوشتیم باید دقیقا هم اسم باشند تا switch انجام شود.

int Id = int.Parse(e.CommandArgument.ToString()); : از طریق این کد نیز مقداد پاس داده شده را دریافت میکنیم و میتوانیم هر عملیاتی که مد نظر داریم انجام دهیم.

در ادامه کد یک شرطی روی جدول Role زده شده و فیلد RoleTitle را داخل txtTitle.Text قرار میدهد.میتواند هر کدی باشد.

امیدوارم توسنته باشید آموزش را درک کنید در ادامه نیز یک فیلم آموزشی قرار داده شده است امیدوارم استفاده کنید.

موفق باشید 🙂

[button color=”blue” size=”medium” link=”https://dl.mspsoft.com/s3/VideoArticels/CammandName_CammandArgument_ASP_www.mspsoft.com.mp4″ icon=”download” target=”true”]دانلود فیلم آموزشی[/button]
  • پسورد: www.mspsoft.com
آیا این مطلب را می پسندید؟
https://www.mspsoft.com/?p=18203
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
مسعود شریفی پور
از سال 88 که با برنامه نویسی آشنا شدم خیلی علاقه مند بودم یک بستر آموزشی بسازم در فضای وب و به انتشار آموزش های در این زمینه بپردازم.حالا یک تیم داریم و با قدرت رو به جلو حرکت میکنیم.
مطالب بیشتر
برچسب ها:

نظرات

0 نظر در مورد نحوه کار با CommandArgument و Commandname + فیلم آموزشی

دیدگاهتان را بنویسید

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

هیچ دیدگاهی نوشته نشده است.