اخواني الكرام
السلام عليكــم ورحمـة الله وبركاتــه ،،
من فترة وانا احاول ان اجد حل لمشكله الصراحه اخدت مني وقت كثير ماله داعي
المشكله باختصار تتمثل في جعل كنترول من نوع
<input type="checkbox" />
يعمل في كل من Client Side والـ Server Side
يعمل في Client Side لاني اريد ان استخدم كود جافا اسكربت
ويعمل في Server Side لاني اريد ان احفظ القيمة النهاية له في قاعده البيانات
يمكن احد الاخوه يقول استخدم runat="server" لكي اتمكن من حفظ البيانات
ولكن ان استخدمه فانه للاسف كود الجافا اسكربت لن يعمل معي
كما ان العكس صحيح ايضا
راح اضع مثال بسيط يوضح الفكره النهائية ولكن قبل المثال ساوضح نقطه بسيطه
قد يتسال البعض لماذا بالاساس استخدمت input type="checkbox دون عن RadioButton
مع انها تسهل الكثير في عملي
والسبب هو التالي :
انني سوف استخدمها اكثر من مره يعني كل اربعه مرتبطه ببعض ويجب ان لا تواثر على الباقي
ببساطه لانو الصفحه عباره عن برمجه استبيان (الجدمة - الجودة - النظافة .الخ)
كل نقطه من النقاط السابقه تحتوي على عده خيارات
الكود هو التالي:
<tr> <td width="74" align="right" valign="top" class="txt2" style="padding-top:2px "> <b class="txt1"> Services: </b></td> <td width="58" align="center" > <input id="services_exc" type="checkbox" onclick="return services_exc_onclick();false" /> </td> <td width="58" align="center" > <input id="services_good" type="checkbox" onclick="return services_good_onclick()" /> </td> <td width="58" align="center" > <input id="services_ok" type="checkbox" onclick="return services_ok_onclick()" /> </td> <td width="58" align="center" > <input id="services_bad" type="checkbox" onclick="return services_bad_onclick()" /> </td> </tr> <tr> <td width="74" align="right" valign="top" class="txt2" style="padding-top:2px "> <b class="txt1"> Food:</b></td> <td width="58" align="center" > <input id="food_exc" type="checkbox" onclick="return food_exc_onclick();false"/> </td> <td width="58" align="center" > <input id="food_good" type="checkbox" onclick="return food_good_onclick()"/> </td> <td width="58" align="center" > <input id="food_ok" type="checkbox" onclick="return food_ok_onclick()" /> </td> <td width="58" align="center" > <input id="food_bad" type="checkbox" onclick="return food_bad_onclick()"/> </td> </tr>
اما كود الجافا اسكريبت فهو التالي:
<script language="javascript" type="text/javascript" >
if(document.getElementById("h").checked==true)
function services_exc_onclick() {
if (document.getElementById("services_exc").checked==true){
document.getElementById("services_good").checked =false;
document.getElementById("services_ok").checked =false;
document.getElementById("services_bad").checked =false;
}
}
function services_good_onclick() {
if (document.getElementById("services_good").checked==true){
document.getElementById("services_exc").checked =false;
document.getElementById("services_ok").checked =false;
document.getElementById("services_bad").checked =false;
}
}
function services_ok_onclick() {
if (document.getElementById("services_ok").checked==true){
document.getElementById("services_exc").checked =false;
document.getElementById("services_good").checked =false;
document.getElementById("services_bad").checked =false;
}
}
function services_bad_onclick() {
if (document.getElementById("services_bad").checked==true){
document.getElementById("services_exc").checked =false;
document.getElementById("services_good").checked =false;
document.getElementById("services_ok").checked =false;
}
}
//_____________________________________________________
function food_exc_onclick() {
if (document.getElementById("food_exc").checked==true){
document.getElementById("food_good").checked =false;
document.getElementById("food_ok").checked =false;
document.getElementById("food_bad").checked =false;
}
}
function food_good_onclick() {
if (document.getElementById("food_good").checked==true){
document.getElementById("food_exc").checked =false;
document.getElementById("food_ok").checked =false;
document.getElementById("food_bad").checked =false;
}
}
function food_ok_onclick() {
if (document.getElementById("food_ok").checked==true){
document.getElementById("food_exc").checked =false;
document.getElementById("food_good").checked =false;
document.getElementById("food_bad").checked =false;
}
}
function food_bad_onclick() {
if (document.getElementById("food_bad").checked==true){
document.getElementById("food_exc").checked =false;
document.getElementById("food_good").checked =false;
document.getElementById("food_ok").checked =false;
}
}
</script>الى هنا مافي اي مشاكل وكل شي مائه مائة ولكن عندما اجي واكتب كود تمهيدا لحفظ البيانات في الداتا بيس تظهر الاخطاء
الكود هو التالي:
DBOperations db = new DBOperations();
string val_services, val_food, val_courtesy, val_cleanliness, val_taste, val_smile, val_visit;
if (this.services_exc.checkbox == true) { val_services = "excellent"; }
else if (this.services_good.checkbox == true) { val_services = "good"; }
else if (this.services_ok.checkbox == true) { val_services = "ok"; }
else if (this.services_bad.checkbox == true) { val_services = "bad"; }
else val_services = DBNull.Value;
if (this.food_exc.checkbox == true) { val_food = "excellent"; }
else if (this.food_good.checkbox == true) { val_food = "good"; }
else if (this.food_ok.checkbox == true) { val_food = "ok"; }
else if (this.food_bad.checkbox == true) { val_food = "bad"; }
else val_food = DBNull.Value;اكرر استخدمت runat="server" ولكن للاسف حدث الجافا اسكريبت لايعمل
ولو ما استخدمتها فان الحدث الاخير الخاص بتحليل الكود تمهيدا لحفظه لا يعمل



