دریافت مقادیر انتخاب شده از Checkboxlist در Asp.net
سه شنبه 22 دی 1394در این مقاله قصد داریم یک checkboxlist بگذاریم و با انتخاب هر کدام یک بار به صورت ردیفی نمایش داده شود و بار بعدی هر کدام از آیتم های انتخاب شده با یک کاما از هم جدا شوند.
در این مقاله مقدار های انتخاب شده از 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;
- ASP.net
- 2k بازدید
- 6 تشکر