دریافت مقادیر انتخاب شده از Checkboxlist در Asp.net

سه شنبه 22 دی 1394

در این مقاله قصد داریم یک checkboxlist بگذاریم و با انتخاب هر کدام یک بار به صورت ردیفی نمایش داده شود و بار بعدی هر کدام از آیتم های انتخاب شده با یک کاما از هم جدا شوند.

دریافت مقادیر انتخاب شده از Checkboxlist  در Asp.net

در این مقاله مقدار های انتخاب شده از checkbox را می توان به صورت آیتم نمایش داد.

راه اول :مقدار تکی بر گرداند

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

به صورت زیر:

داخل صفحه ی aspx قطعه کد زیر را می نویسید:

<body dir="rtl">
    <a href="http://barnamenevisan.org">مرجع تخصصی برنامه نویسان</a>
    <form id="form1" runat="server" style="color: ">
        <div>
            <asp:CheckBoxList ID="chklistcolors" runat="server">
                <asp:ListItem Text="White">سفید</asp:ListItem>
                <asp:ListItem Text="Black">سیاه</asp:ListItem>
                <asp:ListItem Text="Green">سبز</asp:ListItem>
                <asp:ListItem Text="Yellow">زرد</asp:ListItem>
                <asp:ListItem Text="Red">قرمز</asp:ListItem>
                <asp:ListItem Text="Pink">صورتی</asp:ListItem>
                <asp:ListItem Text="Orange">نارنجی</asp:ListItem>
                <asp:ListItem Text="Gray">طوسی</asp:ListItem>
                <asp:ListItem Text="Blue">آبی</asp:ListItem>
                <asp:ListItem Text="Purple">بنفش</asp:ListItem>
            </asp:CheckBoxList>

            <asp:Button ID="btnget" runat="server" Text="برگردان آیتم های Checkbox" OnClick="btnget_Click" />
            <asp:Button ID="btngetsplittedvalues" runat="server" Text="برگرداندن آیتم ها با کاما" OnClick="btngetsplittedvalues_Click" /><br />
            <asp:Label ID="lblvalues" runat="server"></asp:Label>
        </div>
    </form>
</body>

حالا داخل صفحه ی Code behind قطعه کد زیر را بنویسید:

  lblvalues.Text = "";  
  
        foreach (ListItem lst in chklistcolors.Items)  
        {  
            if (lst.Selected == true)  
            {  
                lblvalues.Text += "Selected Item Text: " + lst.Text + "<br />";  
            }  
  
        }

در اینجا ابتدا label خالی است، ما از یک foreach استفاده می کنیم، و تمام آیتم های لیست را چک می کند، و زمانی که کاربر روی checkbox کلیک نماید مقدار آیتم مورد نظر را داخل label مورد نظر نمایش داده می شود.

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

در این روش می خواهیم زمانی که کاربر یک مقدار را انتخاب کرد بین مقادیر کاما قرار بگیرد.

خروجی به صورت زیر خواهد بود:

حالا برای خروجی بالا از همان فرم قبلی استفاده می کنیم ولی باید داخل code behind مورد نظر از یک دستور lambda استفاده نماییم.

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

 lblvalues.Text = "";  
 string selectedItems = String.Join(",",  
  chklistcolors.Items.OfType<ListItem>().Where(r => r.Selected)  
 .Select(r => r.Text));  
 lblvalues.Text = selectedItems; 
فایل های ضمیمه

برنامه نویسان

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

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

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