نحوه استفاده از ListView در ASP WebForms

یکشنبه 3 آبان 1394

در این مقاله شما را با نحوه استفاده از ListView و گرفتن اطلاعات هر سطر در بخش کد آشنا می کنیم.

نحوه استفاده از ListView در ASP WebForms

در ابتدا یک کلاس به نام Person می سازم که شامل دو فیلد ID و Title است :

public class Person
    {
        public int ID { get; set; }
        public string Title { get; set; }
    }

در بالای صفحه اصلی (Default.aspx) یک لیست از نوع Person می سازم و آن را پر می کنم :

List<Person> MyList = new List<Person>()
            {
                new Person(){ID = 1,Title = "Sajad Bagherzadeh"},
                new Person(){ID = 2,Title = "Iman Madaeny"},
                new Person(){ID = 3,Title = "Ali Tamimi"},
                new Person(){ID = 4,Title = "Bardia Ojaghi"}
            };

در قسمت Design صفحه اصلی یک ListView قرار می دهم و دیتاسورس آن را داخل Page_Load صفحه اصلی پر می کنم :

<asp:ListView ID="lvList" runat="server" OnItemCommand="lvList_OnItemCommand">
                <ItemTemplate>
                    <div class="item">
                        <h3><%# Eval("Title") %></h3>
                        <asp:LinkButton ID="hlUpdate" runat="server" CommandArgument='<%# Eval("ID") %>' CommandName="DoUpdate">بروز رسانی</asp:LinkButton>
                        <asp:LinkButton ID="hlDelete" runat="server" CommandArgument='<%# Eval("ID") %>' CommandName="DoDelete">حذف</asp:LinkButton>
                    </div>
                </ItemTemplate>
            </asp:ListView>
protected void Page_Load(object sender, EventArgs e)
        {
            lvList.DataSource = MyList;
            lvList.DataBind();
        }

با استفاده از رویداد OnItemCommand کامپوننت ListView خود می توانیم دکمه های داخل هر کدام از ردیف ها را به صورت جداگانه و با صدا زدن نامی که خودمان یه رویداد مورد نظرمان اختصاص می دهیم  (CommandName) و گرفتن مقدار ذخیره شده داخل CommandArgument که می تواند ID هر ردیف جهت بدست آوردن  آن مورد در کد باشد را مقدار دهی کنیم.

protected void lvList_OnItemCommand(object sender, ListViewCommandEventArgs e)
        {
            switch (e.CommandName)
            {
                case "DoUpdate":
                    {
                        int Id = int.Parse(e.CommandArgument.ToString());
                        var result = MyList.First(c => c.ID == Id);
                        lblMessageShow.ForeColor = Color.Green;
                        lblMessageShow.Text = result.Title + " با کد کاربری (" + result.ID + ") بروز رسانی شد.";
                        break;
                    }
                case "DoDelete":
                    {
                        int Id = int.Parse(e.CommandArgument.ToString());
                        var result = MyList.First(c => c.ID == Id);
                        lblMessageShow.ForeColor = Color.Red;
                        lblMessageShow.Text = result.Title + " با کد کاربری (" + result.ID + ") حذف گردید.";
                        break;
                    }
            }
        }

امیدوارم این مقاله مورد پسند شما قرار گرفته باشد . فایل پروژه ضمیمه این مقاله شده است.

فایل های ضمیمه

سجاد باقرزاده

نویسنده 54 مقاله در برنامه نویسان

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید