שלח תשובה

זירת השאלות

752
צפיות
5
תשובות

בעיה בשילוב של Web Custom Control ב

,‏ 5 בדצמבר, 2006

שלום,

יש לי בעיה בשילוב של Web Custom Control ב User Control ב ASP.NET .

כתבתי את ה Web Custome Control הבא אשר משמש כ RequiredFieldValidator לפקד Checkbox.




Code:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;

namespace CustomValidators //RequiredFieldValidatorForCheckBoxLists
{
/// <summary>
/// Summary description for WebCustomControl1.
/// </summary>

public class RequiredFieldValidatorForCheckBoxLists :
System.Web.UI.WebControls.BaseValidator
{
private ListControl _listctrl;
private int _restrictionCount;
private string _restrictionType;

public int restrictionCount
{
get
{
return _restrictionCount;
}

set
{
_restrictionCount = value;
}
}

public string restrictionType
{
get
{
return _restrictionType;
}

set
{
_restrictionType = value;
}
}

public RequiredFieldValidatorForCheckBoxLists()
{
base.EnableClientScript = false;
}

protected override bool ControlPropertiesValid()
{
Control ctrl = FindControl(ControlToValidate);
      
if (ctrl != null)
{
_listctrl = (ListControl) ctrl;
return (_listctrl != null);  
}
else
return false;  // raise exception
}

protected bool checkit()
{
int count =0;
if(_listctrl.SelectedIndex != -1)
{
foreach(ListItem li in _listctrl.Items)
{
if(li.Selected == true)
{
count++;
}
}
switch  (_restrictionType)
{
case "exactly":
if(count ==  _restrictionCount)
{
return true;
}
else
{
return false;
}
case "up to":
if(count <=  _restrictionCount)
{
return true;
}
else
{
return false;
}
default: return false;
}
}
else
{
return false;
}
}

protected override bool EvaluateIsValid()
{
return checkit();
}
}
}

כאשר אני משתמש ב Custom Control הזה ב WEB FORM רגיל, הכל עובד לי כמו שצריך והולידטור הכן עובד.

הבעיה שלי היא כאשר אני מנסה להשתמש בולידטור הזה בתוך User Control הוא לא מבצע לי את הוולידציה.

אשמח לעזרה בנידון מאחר ואני די תקוע וגילגולי ברשת לא העלו דבר בחקתם.


תגיות:

5 תשובות

  1. זהר פלד הגיב:

    זה קצת יותר מדי קוד לעבור עליו ככה.
    עדיף שתצרף את הקוד כקובץ, וכדאי שיהיו בו הזחות, כי אחרת קשה לי להאמין שמישהו יתאמץ לקרוא אותו.

    מה קורה כשהואלידציה לא מתבצעת? אתה מקבל הודעת שגיאה?

    אתה יכול להעלות דוגמאות של שני המקרים לאיפשהו ברשת, או לפחות להריץ אותם על המחשב שלך ולהעלות לכאן את קוד ה html הסופי?

  2. meshorer הגיב:

    זהר…
    אז ככה מה שקורה שב WEB FORM רגיל הולידטור עובד להלן קישור לדוגמא עובדת.

    העיניין הוא שברגע שאני קורא לוולידטור הזה בתוך User Control הוא לא עובד.
    הוא לא עושה שום דבר, לא מונע משליחת הטופס ולא מקריס את המערכת.

  3. marglf הגיב:

    לעלות את הקוד של User Control
    אתה יכול לעלות בבקשה את הקוד של ה-User Control .

    ואולי אני אצליח לעזור לך.

    איתמר

  4. meshorer הגיב:

    קצת באיחור אבל הינה רצ"ב הקוד
    איתמר , רצ"ב הקוד של ה USER CONTROL.

    אשמח לעזרה אני זמין במייל webmaster@htl.co.il או במסנג'ר htl@netvision.net.il

    תודה מראש,

    חגי.

  5. marglf הגיב:

    אני מצטער
    שלום חגי,

    אני מצטער אך לא אוכל לעזור לך וזאת מהסבה הפשוטה שפשות אינני מתמצא כל כך בVB.NET .

    אך אני בטוח שתוכל למצא פתרון.

    תשנה את אחד האתרים הבאים: http://www.asp.net

שלח תשובה