الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف ألزم المستخدم باختيار Checkbox من Gridview

بدأه AboMoayad في 5 أكتوبر 2009 · 4 رد · 731 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف ألزم المستخدم باختيار CheckBox واحدة على الأقل من كل سطر بحيث لا يستطيع

تنفيذ دالة الحفظ الا بعد ان يتأكد البرنامج ان المستخدم اختار لكل سطر ChedkBox واحده

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#2

I try here to give you the idea:

-Add a templatecolumn for each column in your grid

-In each column template, add a checkbox with ids like CheckBox1,CheckBox2,CheckBox3

-Add a custom validator

-Catch the validator server event to validate each row

-if everything is ok then continue to update


<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="CheckBox2" runat="server" />
<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="choose 1 option only"
onservervalidate="CustomValidator1_ServerValidate"></asp:CustomValidator>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
 <asp:GridView ID="GridView1" runat="server">


{
CustomValidator val = (CustomValidator)source;
GridViewRow row = val.NamingContainer as GridViewRow;
bool isValid = false;
int selected = 0;
for (int i = 1; i <= 2; i++)
{
CheckBox cb = row.FindControl("CheckBox" + i.ToString()) as CheckBox;
if (cb.Checked)
selected++;
}
if (selected == 0)
val.ErrorMessage = "You need to select at least one option";
else if (selected > 1)
val.ErrorMessage = "You need to select only one option";
else
isValid = true;
args.IsValid = isValid;

}
protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)


{
//this will call the custom validator for each row
if (Page.IsValid)
{
//do update here

}
}
 protected void Button1_Click(object sender, EventArgs e)

#3

أشكر الأستاذ القدير مدني , ولو تكمل جميلك , كيف أحدد السطر الذي لم يتم اختيار CheckBox منه بحيث يتغير لون BackColor للسطر حتى يعرف المستخدم

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#4
if (selected == 0)
{
			val.ErrorMessage = "You need to select at least one option";
row.BackColor = Color.Red;
}
#5

ربي يحفظك أستاذي الفاضل , من زمان وأنا أدور حل لمشكلتي هذه من منتدى لآخر , ولعلمك أنت أكثر واحد حليت مشاكلي منذ 3 سنوات ..

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

مواضيع مشابهة