توضیحات و دانلود

روش استفاده از رویداد GridView RowEditing در ASP.Net با استفاده از C#
1 0
روش استفاده از رویداد GridView RowEditing در ASP.Net با استفاده از C#

در اینجا مقاله توضیح خواهیم داد كه چگونه میتوان از رویداد RowEditing در كنترل GridView ASP.Net با استفاده از C # استفاده كنید.

برای نشان دادن این مفهوم، از یك كنترل ASP.Net GridView استفاده خواهم كرد كه عملیات ویرایش و به روزرسانی آن را انجام می دهیم و داده های به روز شده را در DataTable موقت ذخیره می كنم.

كد HTML

كد HTML زیر شامل یك GridView ASP.Net می باشد.

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowEditing="OnRowEditing">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="نام و نام خانوادگی" ItemStyle-Width="150" />
            <asp:BoundField DataField="Country" HeaderText="ملیت" ItemStyle-Width="150" />
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton Text="ویرایش" runat="server" CommandName="Edit" />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:LinkButton Text="به روز رسانی" runat="server" OnClick="OnUpdate" />
                    <asp:LinkButton Text="انصراف" runat="server" OnClick="OnCancel" />
                </EditItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>

فضاهای نام

شما باید نام فضای نامهای زیر در پروژه وارد كنید.

using System.Data;

 GridView و DataTable موقت

در داخل رویداد بارگذاری صفحه، ابتدا یك شیء DataTable موقت و پویا ایجاد میكنیم، سپس خصوصیاتی مانند تعداد ستون و نام ستون DataTable را مشخص میكنیم بعد از این تعدادی داده در DataTable وارد میكنیم.

سپس این DataTable موقت پویا در متغیر ViewState ذخیره می شود و در نهایت برای كنترل GridView استفاده می شود.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.IsPostBack)
        {
            DataTable dt = new DataTable();
            dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Country") });
            dt.Rows.Add(1, "وحید قزلوند""ایران");
            dt.Rows.Add(2, "لیونل مسی""آرژانتین");
            dt.Rows.Add(3, "كریستیانو رونالدو""پرتقال");
            dt.Rows.Add(4, "زین الدین زیدان""فرانسه");
            ViewState["dt"] = dt;
            this.BindGrid();
        }
    }
 
    protected void BindGrid()
    {
        GridView1.DataSource = ViewState["dt"as DataTable;
        GridView1.DataBind();
    }

رویداد OnRowEditing

در زیر  رویداد OnRowEditing است كه برای یك GridView ردیف هنگامی كه دكمه ویرایش در داخل آن ردیف كلیك می شود، فعال می شود.

در داخل این رویداد ، GridView EditIndex را با NewEditIndex از شی Object GridViewEditEventArgs میگیریم و سپس GridView دوباره از DataTable موقت درون متغیر ViewState ذخیره می شود.

فرآیند فوق GridView را در حالت ویرایش قرار میدهد.

protected void OnRowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;
        this.BindGrid();
    }

OnRowUpdating و لغو رویداد های ویرایش

در ادامه رویدادهای برای بروزرسانی و دكمه  انصراف رابررسی میكنیم.

درون رویداد Update در DataTable  موقت كه از متغیر ViewState به دست می آید و سپس ردیف به روز می شود با استفاده از RowIndex از GridView ردیفی را كه دكمه به روز رسانی آن كلیك شد شناسایی می شود.

سپس مقادیری كه به روزرسانی می شوند از TextBox ها استخراج می شوند و به ستون های مربوطه DataTable Row اختصاص داده می شوند.

در نهایت DataTable موقت دوباره در ViewState ذخیره می شود و GridView دوباره با DataTable موقت به روز می شود.

در داخل كنترل رویداد انصراف، GridView EditIndex به -1 تنظیم شده و GridView با داده هایی از DataTable موقت ذخیره شده در ViewState ذخیره می شود.

protected void OnUpdate(object sender, EventArgs e)
    {
        GridViewRow row = (sender as LinkButton).NamingContainer as GridViewRow;
        string name = (row.Cells[0].Controls[0] as TextBox).Text;
        string country = (row.Cells[1].Controls[0] as TextBox).Text;
        DataTable dt = ViewState["dt"as DataTable;
        dt.Rows[row.RowIndex]["Name"] = name;
        dt.Rows[row.RowIndex]["Country"] = country;
        ViewState["dt"] = dt;
        GridView1.EditIndex = -1;
        this.BindGrid();
    }
 
    protected void OnCancel(object sender, EventArgs e)
    {
        GridView1.EditIndex = -1;
        this.BindGrid();
    }


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :