2011-01-13 30 views
6

में आवश्यक फ़ील्ड सत्यापनकर्ता मेरे पास दोहराने वाले में दोहराना नियंत्रण और टेक्स्टबॉक्स है। मैं पाठ बॉक्स में एक आवश्यक फ़ील्ड सत्यापनकर्ता चाहते हो मैं इसदोहराए गए

उत्तर

9
<asp:Repeater id="myRep" OnItemDataBound="rep_ItemDataBound" runat="server"> 
    <ItemTemplate> 
     <asp:TextBox id="tx" runat="server" /> 
     <asp:RequiredFieldValidator id="myVal" ControlToValidate="tx" ErrorMessage="Required" runat="server" /> 
    </ItemTemplate> 
</asp:Repeater> 

अद्यतन

कोड-पीछे करने के लिए इस जोड़े कर सकते हैं (यह भी मार्कअप एक घटना की सदस्यता के लिए थोड़ा संशोधित करने, ऊपर देखें) :

protected void rep_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    RequiredFieldValidator val = (RequiredFieldValidator)e.Item.FindControl("myVal"); 
    TextBox tb = (TextBox)e.Item.FindControl("tx"); 

    val.ControlToValidate = tb.ID; 
} 
+0

यह है बनाता है काम नहीं कर रहे दोस्त – sumit

+0

क्या आप विस्तृत कर सकते हैं? वास्तव में क्या काम नहीं कर रहा है? यह मेरे लिए ठीक काम करता है (बस परीक्षण किया गया)। जब आप सबमिट करने और खाली क्षेत्र को खाली करने का प्रयास करते हैं तो आपको कोई त्रुटि संदेश नहीं मिलता है? – volpav

+0

हाँ यह काम कर रहा है ... – ogun

2

आप पुनरावर्तक आइटम डेटाबेस पर ControlToValidate मान सेट कर सकते हैं।

+0

मैंने यह भी कोशिश की है, लेकिन कोई परिणाम नहीं – sumit

+0

onitemdatabound टेक्स्टबॉक्स.क्लिएंट प्राप्त करें और इसे अपने वैधकर्ताओं को नियंत्रण विशेषता सेट करें ... – ogun

1

प्रयास करें यह एक

<asp:Repeater ID="rptSample" runat="server"> 
    <ItemTemplate> 
     Name:<br /> 
     <asp:TextBox ID="txtName" runat="server"></asp:TextBox> 
     <asp:RequiredFieldValidator ID="rfvName" ControlToValidate="txtName" runat="server" Display="Static" ErrorMessage="Name field cannot be left blank"></asp:RequiredFieldValidator> 
    </ItemTemplate> 
</asp:Repeater> 
<br /> 
<asp:Button ID="btnSubmit" Text="Submit" runat="server" /> 
+0

यह भी काम नहीं कर रहा है – sumit

+0

क्या आप मुझे बता सकते हैं कि आप इस समाधान को अपने पक्ष में कैसे कार्यान्वित करते हैं। यह मेरे लिए ठीक काम कर रहा है पक्ष (परीक्षण)।यदि आप सबमिट बटन पर क्लिक करते हैं तो यह टेक्स्टबॉक्स नियंत्रण के साथ त्रुटि संदेश प्रदर्शित करता है। क्या आप अपना कोड प्रश्न में लिख सकते हैं। – Sukhjeevan

0
protected void myRep_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) 
    { 
     ((RequiredFieldValidator)e.Item.FindControl("myVal")).ValidationGroup = ((TextBox)e.Item.FindControl("tx")).UniqueID; 
    } 
} 
5

आप एक पुनरावर्तक एक बटन क्लिक द्वारा मान्य करने में सभी बक्सें चाहते हैं तो इस

<asp:Repeater ID="rpt" runat="server"> 
    <ItemTemplate> 
     <asp:TextBox ID="txt" runat="server"> 
     </asp:TextBox> 
     <asp:RequiredFieldValidator ID="rqf" ControlToValidate="txt" 
     ErrorMessage="*" ValidationGroup = "TestValidationGroup" runat = "server"> 
     </asp:RequiredFieldValidator> 
    </ItemTemplate> 
    </asp:Repeater> 
    <asp:Button ID = "btnSubmit" runat = "server" ValidationGroup = "TestValidationGroup" /> 

के लिए जाँच करने के लिए कोई ज़रूरत नहीं की तरह साधारण thats डाटाबेस या कुछ भी के लिए कोई घटना।

0
protected void Repeater_OnItemDataBound(object sender, RepeaterItemEventArgs e) { 
    tblData tbldata = e.Item.DataItem as tblData; 

    RequiredFieldValidator val = (RequiredFieldValidator)e.Item.FindControl("rfv"); 

    if (tbldata.FieldName.ToUpper().Contains("NOT NULL")) { 
     TextBox tb = (TextBox)e.Item.FindControl("txtDATFieldName"); 
     val.ControlToValidate = tb.ID; 
    } 
    else { 
     val.Enabled = false; // disable when you dont need a validator 
    } 
} 
0

शायद तुम ... प्रति पंक्ति एक सत्यापन है इस

ValidationGroup='<%# "gropname" + Eval("Id") %>' 

तरह प्रति पंक्ति एक समूह के लिए मान्यता समूह सेट सत्यापनकर्ता, पाठ बॉक्स और बटन में ऐसा चाहते

एचटीएच जी

0

मैं इसे करने की कोशिश कर RegisterExpandoAttribute में डुप्लिकेट कुंजी अपवाद प्राप्त करता रहा। मैं एक पुनरावर्तक के अंदर एक UserControl उपयोग कर रहा था, जब बजाय "ItemDataBinding" "OnDataBinding" यह मेरे लिए काम किया:

/// <summary> 
/// Raises the <see cref="E:System.Web.UI.Control.DataBinding" /> event. 
/// </summary> 
/// <param name="e">An <see cref="T:System.EventArgs" /> object that contains the event data.</param> 
protected override void OnDataBinding(EventArgs e) 
{ 
    base.OnDataBinding(e); 
    foreach (Control ct in this.Controls) 
    { 
     BaseValidator bv = ct as BaseValidator; 
     if (null == bv) 
     { 
      continue; 
     } 
     bv.ControlToValidate = this.FindControl(bv.ControlToValidate).ID; 
     bv.ValidationGroup = this.ValidationGroup; 
    } 
} 

और हाँ, मुझे नहीं लगता कि यह कोई मतलब या तो

संबंधित मुद्दे