2011-12-14 13 views
5

अंदर चेकबॉक्स का उपयोग करना मैं कल के बाद से ऐसा करने की कोशिश कर रहा है, लेकिन एक समाधान नहीं सोच सकते हैं। मेरे पास एक दोहराना है जिसमें एक चेकबॉक्स और फ़ाइल अपलोड है, यह दोहराना मेरी तालिका की सामग्री के आधार पर कई बार दोहराता है। जब फ़ाइल अपलोड के नीचे चेकबॉक्स चेक किया जाता है तो उसे फ़ाइल अपलोड की जांच नहीं करनी चाहिए। मैं ऐसा करने के किसी भी तरीके से नहीं सोच सकता। कोई विचार? कोड हैएक पुनरावर्तक नियंत्रण

वर्ग:

protected void UploadButton_Click(object sender, EventArgs e) 
{ 
    String savePath = @"~/files/"; 
    try 
    { 
     foreach (RepeaterItem item in rptVrijstellingen.Items) 
     {    
      FileUpload file=(FileUpload)item.FindControl("FileUpload1"); 
      HiddenField uid = (HiddenField)item.FindControl("hiddenid"); 
      CheckBox ch = (CheckBox)item.FindControl("CBupload"); 
      if(ch.Checked) 
       Response.Write("checked"); 
      else 
      { 
       if (file.HasFile) 
       { 
        String fileName = file.FileName; 
        savePath += fileName; 
        file.SaveAs(Server.MapPath(savePath + fileName)); 
        tblBijlage s = new tblBijlage(); 
        s.bijlageTitel = fileName; 
        s.bijlageURL = savePath; 
        s.bijlageType = "1"; 
        s.fk_externvakID = Convert.ToInt16(uid.Value); 
        BLLstudent.insertFile(s); 
       } 
       else 
        throw new Exception("Gelieve bij alle vakken een file toe te voegen of gegeven aan mevrouw Van Orlé aan te vinken en een afspraak te maken."); 
      } 
      Response.Redirect("s_student_Ovrijstellingen.aspx"); 
      } 
     } 
     catch (Exception ex) 
     { 
      UploadStatusLabel.Text = ex.Message;     
     } 
} 

दृश्य:

<!-- language: xml --> 
<asp:Repeater ID="rptVrijstellingen" runat="server"> 
    <HeaderTemplate></HeaderTemplate> 
    <ItemTemplate> 
     <h2><%# Eval("tblExternVak.ExternvakNaam") %></h2> 
     <asp:HiddenField ID="hiddenid" Value='<%# Eval("tblExternVak.pk_externvakID") %>' runat="server" />  
     <h4>Selecteer een bestand om te uploaden:</h4> 
     Gelieve het bestand de naam te geven van het overeenkomstige vak om de verwerking vlot te laten verlopen. 
     <br /><br /> <br /> 
     <asp:FileUpload id="FileUpload1" runat="server"></asp:FileUpload> 
     <br /> 
     <asp:CheckBox id="CBupload" runat="server" /><asp:Label id="lblUpload" runat="server"> Geleverd aan Mevrouw Van Orlé</asp:Label> 
     <hr /> 
    </ItemTemplate> 
    <SeparatorTemplate><hr /></SeparatorTemplate> 
</asp:Repeater> 
<asp:Label id="UploadStatusLabel" runat="server" ForeColor="Red"></asp:Label> 
<br /><br /> 
<asp:Button id="UploadButton" Text="volgende > " OnClick="UploadButton_Click" runat="server"></asp:Button> 

यू इसकी सिर्फ एक लॉजिक्स समस्या देख सकते हैं ... किसी को भी मुझे यह कैसे हल करने के लिए एक उदाहरण दे सकते हैं?

+0

स्थापित करने की कोशिश करें 'EnableViewState =" true "' चेक बॉक्स नियंत्रण – sll

+0

के लिए बहुत चेकबॉक्स नियंत्रण प्रत्येक अपलोड alrdy करता है? ऊ –

+0

परीक्षण किया है, फ्लॉप काम :( –

उत्तर

3

आप शायद पृष्ठ लोड दौरान पुनरावर्तक करने के लिए आइटम बाध्यकारी हैं। क्या आप पोस्टबैक की जांच कर रहे हैं?

क्या मुझे लगता है कि क्या हो रहा है कि जब आप बटन पर क्लिक करें पृष्ठ पुनः लोड कर रहा है और पुनरावर्तक अपने डेटा के साथ भरा हो जाता है, चेकबॉक्स आपके द्वारा किए गए अधिलेखित। आप क्लिक की यह हमेशा गलत किया जा रहा है के बजाय चेक बॉक्स के वास्तविक मूल्य को देखना चाहिए अब

if(!Page.IsPostBack) 
{ 
    //Fill repeater with items here 
} 

जब आप बटन के बाद पुनरावर्तक आइटम बाहर पढ़ें: बस सुनिश्चित करें कि आप अपने पृष्ठ लोड में कुछ इस तरह करते हैं।

+0

प्रिय श्री बुरमान आप मेरे नायक हैं! एक्सडी आयोजित: पी –

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