Flutter Dev نشر 11 ديسمبر 2021 أرسل تقرير نشر 11 ديسمبر 2021 (معدل) قمت بعمل حقول متعددة للاختيار بشكل التالي: قمت بأخذ الشرح من هذا المقال http://www.codingfusion.com/Post/Dropdownlist-with-checkboxes-in-asp-net <asp:listbox runat="server" id="lstBoxTest" selectionmode="Multiple" AutoPostBack="True" OnSelectedIndexChanged="lstBoxTest_SelectedIndexChanged"> <asp:ListItem Value="2">الرقم </asp:ListItem> <asp:ListItem Value="3">الاسم</asp:ListItem> <asp:ListItem Value="4">البلد</asp:ListItem> </asp:listbox> وقمت بوضع دالة شرطيه مرتبطه لديه حتى استطيع اخفاء حقول من gridView في حالة الاختيار من قبل المستخدم كالتالي: protected void lstBoxTest_SelectedIndexChanged(object sender, EventArgs e) { foreach (ListItem item in lstBoxTest.Items) { if (item.Selected) { if (item.Value == "1" ) { gvProducts.Columns[1].Visible = false; } else if (item.Value == "2") { gvProducts.Columns[2].Visible = false; } else if (item.Value == "3") { gvProducts.Columns[3].Visible = false; } } } } الكود شغال في حالة وضع المربع في حالة الاختيار او وضع علامة الصح ولكن مشكلتي لو قمت بعملية تراجع الحقول لا تعود في الجريد فيو قمت بمحاولة كتابة الكود بشكل التالي ولم يعمل : if (item.Value == "1" ) { gvProducts.Columns[1].Visible = false; } else { gvProducts.Columns[1].Visible = true; } مع العلم اني قمت بتجربته في Checkbox وهيا تعمل ولكني ارغب باستعمال الطريقة التي في الأعلى على شكل قائمة كيف يمكن عمل الدالة الشرطية بشكل الصحيح في هذا الحالة لو تكرمتو ووضع شرط انهاء الاخفاء للحقول تم التعديل في 11 ديسمبر 2021 بواسطة Wael Aljamal توضيح السؤال 1 اقتباس
2 Wael Aljamal نشر 12 ديسمبر 2021 أرسل تقرير نشر 12 ديسمبر 2021 بتاريخ 36 دقائق مضت قال مروان مروان3: بنسبة الى الحل الاول قمت بكتابته اعلى foreach ولكن تظهر لدي المشكله التاليه: أحاول الوصول لخاصية عدد الأعمدة، بتاريخ 38 دقائق مضت قال مروان مروان3: بنسبة الى الحل الاول قمت بكتابته اعلى foreach ولكن تظهر لدي المشكله التاليه: يجب وضع خيار autogeneratecolumns="false" => int temp = GridView1.Columns.Count; // will return 6 حسب المثال <asp:GridView ID="GridView1" autogeneratecolumns="false" runat="server"> <columns> <asp:boundfield datafield="CustomerID" headertext="Customer ID"/> <asp:boundfield datafield="CompanyName" headertext="Company Name"/> <asp:boundfield datafield="Address" headertext="Address"/> <asp:boundfield datafield="City" headertext="City"/> <asp:boundfield datafield="PostalCode" headertext="Postal Code"/> <asp:boundfield datafield="Country" headertext="Country"/> </columns> </asp:GridView> 2 اقتباس
2 Wael Aljamal نشر 11 ديسمبر 2021 أرسل تقرير نشر 11 ديسمبر 2021 مع كل تبديل في حالة الاختيار، سيتم إرسال القائمة كاملة مع التعديلات، لذلك في كل مرة، يمكننا تحديد أن جميع الخيارات متاحة، ثم نعود و نزيل ما تم تحديده، سأحاول تطبيق الفكرة: الأولى نعتبرهم جميعاً ظاهرين ثم نخفي ما تم تحديده ضعها قبل for each const int gvProductsCount = gvProducts.Columns.Count; for (int i = 0; i < gvProductsCount; i++) { gvProducts.Columns[i].Visible = true; } ثم تأتي for each لتخفي ما تم اختياره. الفكرة الثانية باستخدام if - else foreach (ListItem item in lstBoxTest.Items) { if (item.Selected) { // item 1 if (item.Value == "1" ) { gvProducts.Columns[1].Visible = false; } else { gvProducts.Columns[1].Visible = true; } // item 2 if (item.Value == "2" ) { gvProducts.Columns[2].Visible = false; } else { gvProducts.Columns[2].Visible = true; } // item 3 if (item.Value == "3" ) { gvProducts.Columns[3].Visible = false; } else { gvProducts.Columns[3].Visible = true; } } } 2 اقتباس
0 Flutter Dev نشر 12 ديسمبر 2021 الكاتب أرسل تقرير نشر 12 ديسمبر 2021 بتاريخ 16 ساعات قال Wael Aljamal: مع كل تبديل في حالة الاختيار، سيتم إرسال القائمة كاملة مع التعديلات، لذلك في كل مرة، يمكننا تحديد أن جميع الخيارات متاحة، ثم نعود و نزيل ما تم تحديده، سأحاول تطبيق الفكرة: الأولى نعتبرهم جميعاً ظاهرين ثم نخفي ما تم تحديده ضعها قبل for each const int gvProductsCount = gvProducts.Columns.Count; for (int i = 0; i < gvProductsCount; i++) { gvProducts.Columns[i].Visible = true; } ثم تأتي for each لتخفي ما تم اختياره. الفكرة الثانية باستخدام if - else foreach (ListItem item in lstBoxTest.Items) { if (item.Selected) { // item 1 if (item.Value == "1" ) { gvProducts.Columns[1].Visible = false; } else { gvProducts.Columns[1].Visible = true; } // item 2 if (item.Value == "2" ) { gvProducts.Columns[2].Visible = false; } else { gvProducts.Columns[2].Visible = true; } // item 3 if (item.Value == "3" ) { gvProducts.Columns[3].Visible = false; } else { gvProducts.Columns[3].Visible = true; } } } اهلا بك اخي الكريم بنسبة الى الحل الثاني انا قمت بتطبيقه مسبقا if and else المشكله لو قمت باختيار اول اختيار على سبيل المثال وقمت بعدها بمحاولة اختيار ثانية يظهر الاختيار الاول وكانني قمت بازلة علامة الصح ويختفي الثاني يحدث امر مثل ذلك لذلك لم استعمله بنسبة الى الحل الاول قمت بكتابته اعلى foreach ولكن تظهر لدي المشكله التاليه: اقتباس
0 Flutter Dev نشر 12 ديسمبر 2021 الكاتب أرسل تقرير نشر 12 ديسمبر 2021 بتاريخ 31 دقائق مضت قال Wael Aljamal: أحاول الوصول لخاصية عدد الأعمدة، يجب وضع خيار autogeneratecolumns="false" => int temp = GridView1.Columns.Count; // will return 6 حسب المثال <asp:GridView ID="GridView1" autogeneratecolumns="false" runat="server"> <columns> <asp:boundfield datafield="CustomerID" headertext="Customer ID"/> <asp:boundfield datafield="CompanyName" headertext="Company Name"/> <asp:boundfield datafield="Address" headertext="Address"/> <asp:boundfield datafield="City" headertext="City"/> <asp:boundfield datafield="PostalCode" headertext="Postal Code"/> <asp:boundfield datafield="Country" headertext="Country"/> </columns> </asp:GridView> ربي يرزقك جنات النعيم ويزيدك من واسع فضله وعلمه نجح الامر 100%100 سوف اضع الكود للفائدة بعد التعديل: protected void lstBoxTest_SelectedIndexChanged(object sender, EventArgs e) { int temp = gvProducts.Columns.Count; for (int i = 0; i < temp; i++) { gvProducts.Columns[i].Visible = true; } foreach (ListItem item in lstBoxTest.Items) { if (item.Selected) { if (item.Value == "1" ) { gvProducts.Columns[1].Visible = false; } else if (item.Value == "2") { gvProducts.Columns[2].Visible = false; } else if (item.Value == "3") { gvProducts.Columns[3].Visible = false; } } } } } ممكن استعماله في button او عن طريق لسته بشكل مباشر مودتي لك 1 اقتباس
السؤال
Flutter Dev
قمت بعمل حقول متعددة للاختيار بشكل التالي: قمت بأخذ الشرح من هذا المقال
http://www.codingfusion.com/Post/Dropdownlist-with-checkboxes-in-asp-net
وقمت بوضع دالة شرطيه مرتبطه لديه حتى استطيع اخفاء حقول من gridView في حالة الاختيار من قبل المستخدم كالتالي:
الكود شغال في حالة وضع المربع في حالة الاختيار او وضع علامة الصح ولكن مشكلتي لو قمت بعملية تراجع الحقول لا تعود في الجريد فيو
قمت بمحاولة كتابة الكود بشكل التالي ولم يعمل :
مع العلم اني قمت بتجربته في Checkbox وهيا تعمل ولكني ارغب باستعمال الطريقة التي في الأعلى على شكل قائمة
كيف يمكن عمل الدالة الشرطية بشكل الصحيح في هذا الحالة لو تكرمتو ووضع شرط انهاء الاخفاء للحقول
تم التعديل في بواسطة Wael Aljamalتوضيح السؤال
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.