آموزش انتقال اطلاعات بین ListBox در Asp.Net
0 0

آموزش انتقال اطلاعات بین ListBox در Asp.Net


آموزش انتقال اطلاعات بین ListBox در Asp.Net

 

در این پست میخواهیم چگونگی انتقال اطلاعات از یک ListBox به ListBox دیگر را در Asp.Net آموزش دهیم.

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

امروز می خواهیم چگونگی پیاده سازی ساخت لیست دلخواه از میان انبوهی از اطلاعات داخل یک لیست دیگر را فرابگیریم.

ابتدا یک پروژه از نوع Asp.Net داخل ویژوال استادیو ایجاد می کنیم و نام آن را IranGanjListBox قرار میدهیم.

آموزش انتقال اطلاعات بین ListBox در Asp.Net

نوع این پروژه را Empty در نظر میگیریم.

آموزش انتقال اطلاعات بین ListBox در Asp.Net

در ادامه نیاز به یک وب فرم داریم. به همین منظور وب فرمی با نام listbox_demo ایجاد میکنیم.

آموزش انتقال اطلاعات بین ListBox در Asp.Net

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


<asp:ListBox ID="lboxone" runat="server" Height="131px" Width="98px" 
            SelectionMode="Multiple" BackColor="#66FF66">
            <asp:ListItem>جاوااسکریپت</asp:ListItem>
            <asp:ListItem>جی کوئری</asp:ListItem>
            <asp:ListItem>آجاکس</asp:ListItem>
            <asp:ListItem>اورکل</asp:ListItem>
            <asp:ListItem>جاوا</asp:ListItem>
        </asp:ListBox>

<asp:ListBox ID="lboxtwo" runat="server" Height="131px" Width="98px" 
            SelectionMode="Multiple" BackColor="#66FF66">
            <asp:ListItem>پی اچ پی</asp:ListItem>
            <asp:ListItem>آی اس پی</asp:ListItem>
            <asp:ListItem>ایکس ام ال</asp:ListItem>
            <asp:ListItem>آی او اس</asp:ListItem>
        </asp:ListBox>

 

پس از اضافه کردن لیست باکس نیاز به دکمه هایی هست تا عملیات انتقال بین لیست هارا انجام دهد. به همین منظور ما چهار باتن از نوع تصویری برای این کار در نظر میگیریم.


<table style="width: 67%; height: 139px;">
                        <tr>                         
                            <td class="style5">
                                <asp:ImageButton ID="imgbtnAdd" runat="server" 
                                    ImageUrl="~/add 1on 1.jpg" onclick="imgbtnAdd_Click" 
                                    ImageAlign="Bottom" />
                            </td>                          
                        </tr>
                        <tr>     
                            <td class="style5">
                                <asp:ImageButton ID="imgbtnRemove" runat="server" 
                                    ImageUrl="~/remove 1 on 1.jpg" onclick="imgbtnRemove_Click" />
                            </td>                       
                        </tr>
                        <tr>                           
                            <td class="style5">
                                <asp:ImageButton ID="imgbtnAddAll" runat="server" 
                                    ImageUrl="~/add all.jpg" 
                                    onclick="imgbtnAddAll_Click" />
                            </td>                           
                        </tr>
                        <tr>                          
                            <td class="style5">
                                <asp:ImageButton ID="imgbtnRemoveAll" runat="server"
                                     ImageUrl="~/remove all.jpg" 
                                    onclick="imgbtnRemoveAll_Click" />
                            </td>                           
                        </tr>
                    </table>

به کدها دقت کنید متوجه میشوید هریک از باتن ها چه وظیفه ای را برعهده دارد.

انتقال تکی به صورت دوطرفه و انتقال کلی به صورت کلی رخ دادهای این باتن ها هستند.

رویداد کلیک را برای هریک ایجاد می کنیم تا در قسمت کلاینت دستورات انتقال را قرار دهیم.

ابتدا فضای نام زیر را اضافه و دو لیست ارایه را تعریف میکنیم.


using System.Collections;</span>

public partial class listbox_demo : System.Web.UI.Page
    {
        ArrayList al1 = new ArrayList();
        ArrayList al2 = new ArrayList();

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


protected void imgbtnAdd_Click(object sender, ImageClickEventArgs e)
        {
            if(lboxone.SelectedIndex >= 0)
            {
                for (int i =0; i<lboxone.Items.Count; i++)
                {
                    if(lboxone.Items[i].Selected)
                    {
                        if(!al1.Contains(lboxone.Items[i]))
                        {
                            al1.Add(lboxone.Items[i]);
                        }
                    }
                }
                for (int i = 0; i < al1.Count; i++)  
            {  
                if (! lboxtwo.Items.Contains(((ListItem)al1[i])))  
                {  
                    lboxtwo.Items.Add(((ListItem)al1[i]));  
                }  
                lboxone.Items.Remove(((ListItem)al1[i]));  
            }  
            lboxtwo.SelectedIndex = -1;  
        }  
        else  
        {  
            lbmsg.Text = "ابتدا یک مورد را انتخاب کنید";  
            lbmsg.ForeColor = System.Drawing.Color.Red;  
        } 
  
        }
        

        protected void imgbtnRemove_Click(object sender, ImageClickEventArgs e)
        {
            if ( lboxtwo.SelectedIndex >= 0)  
        {  
            for (int i = 0; i < lboxtwo.Items.Count; i++)  
            {  
                if (lboxtwo.Items[i].Selected)  
                {  
                    if (!al2.Contains(lboxtwo.Items[i]))  
                    {  
                        al2.Add(lboxtwo.Items[i]);  
                    }  
                }  
            }  
            for (int i = 0; i < al2.Count; i++)  
            {  
                if (!lboxone.Items.Contains(((ListItem)al2[i])))  
                {  
                     lboxone.Items.Add(((ListItem)al2[i]));  
                }  
                lboxtwo.Items.Remove(((ListItem)al2[i]));  
            }  
            lboxone.SelectedIndex = -1;  
        }  
        else  
        {  
            lbmsg.Text = "داده حذف شد از لیست";  
            lbmsg.ForeColor = System.Drawing.Color.ForestGreen;  
        }   
        }

در ادامه برای دو باتن دیگر که وظیفه انتقال دوطرفه کلی اطلاعات را برعهده دارند دستورات زیر را مینویسیم.

 


 protected void imgbtnAddAll_Click(object sender, ImageClickEventArgs e)
        {
            while (lboxone.Items.Count != 0)  
        {  
            for (int i = 0; i < lboxone.Items.Count; i++)  
            {  
                lboxtwo.Items.Add(lboxone.Items[i]);  
                lboxone.Items.Remove(lboxone.Items[i]);  
            }        
        }  
        lbmsg.Text = "تمامی داده ها اضافه شد به لیست باکس دوم";  
        lbmsg.ForeColor = System.Drawing.Color.ForestGreen;     
        }

        protected void imgbtnRemoveAll_Click(object sender, ImageClickEventArgs e)
        {
             while (lboxtwo.Items.Count != 0)  
        {  
            for (int i = 0; i < lboxtwo.Items.Count; i++)  
            {  
                lboxone.Items.Add(lboxtwo.Items[i]);  
                lboxtwo.Items.Remove(lboxtwo.Items[i]);  
            }  
        }  

        lbmsg.Text = "تمامی داده ها اضافه شد به لیست باکس اول";  
        lbmsg.ForeColor = System.Drawing.Color.ForestGreen;   

        }

 

حال به راحتی می توانیم لیست دلخواهی از اطلاعات موجود در لیست دیگر را برای خود فراهم نماییم.

تصویر حاصل از کار :

آموزش انتقال اطلاعات بین ListBox در Asp.Net

آموزش انتقال اطلاعات بین ListBox در Asp.Net

دانلود

نویسنده علی بهارلویی
گروه مطلب Asp.Net
نوع مطلب سورس کد و آموزش
تاریخ انتشار ۱۶ شهریور ۱۳۹۴
منبع ایران گنج
تعداد نظرات ۰
قیمت کاربران عضو سایت
توضیح توجه:
  • زمانی که روی لینک دانلود کلیک می کنید لینک دانلود به مدت 24 ساعت معتبر خواهد بود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

نظر / سوال

Captcha

این صفحه را می‌پسندم