2015-12-09 6 views
0

У меня есть 3 просмотра внутри Multi-view и на втором экране У меня есть FileUpload Control. Я отправляю все значения на третий вид на button_click. проблема заключается в том, когда я нажимаю кнопку fileuplode кнопки отправки. HasFiles всегда показывает false, Я знаю, что он показывает false, потому что элемент управления загрузкой файлов не отображается на веб-странице. Но есть ли способ, чтобы получить отправленные данные файла из управления FileUpload, который находится на 2 точки зрения и представить это значение по мнению 3 ..Загрузка файла Внутри многостраничного просмотра всегда отображается fileuplode.HasFiles False

Вот код из View2

<div class="form-group"> 
     <label for="InputMessage">Written Note From Doctor (Approval Note)</label> 
     <div class="input-group"> 
     <asp:FileUpload runat="server" ID="drFileUpload" placeholder="Doctor Note" class="fileupload" /> 
      </div> 
     </div> 
     <asp:Button runat="server" CssClass="btn btn-success" Text="Previous" ID="Button1" OnClick="activeView0" /> 
    <asp:Button runat="server" CssClass="btn btn-success" ID="txtnext2" Text="Next" OnClick="activeView2" ValidationGroup="view2" TabIndex="1" /> 

А Посмотреть 3 I вношу все значения

Вот код Button_click на View3

`

if (drFileUpload.HasFiles) 
    { 
    string filename = drFileUpload.PostedFile.FileName; 
    string extention = Path.GetExtension(filename); 
    if (extention.ToLower() == ".jpg" | extention.ToLower().ToLower() == ".png" | extention.ToLower().ToLower() == ".jpeg") 
     { 
     filename = txtMobile.Text; 
     int width=Convert.ToInt32(ConfigurationManager.AppSettings["ProfilePicWidth"]); 
     string Destination = Convert.ToString(Server.MapPath("../Images/Members/" + filename + extention)); 
     CommanFunctions.ResizeImage(width, drFileUpload.PostedFile.InputStream, Destination); 
     regi.ProfilePic = Destination; 
     } 
else 
     { 
     lblError.Text = "Please Upload a valid Image"; 
     multiview.ActiveViewIndex = 1; 
     } 
    } 
else 
{ 
    regi.ProfilePic = null; 
} 

Я попытался создать код в панели обновления, но он не работает.

ответ

0

я нашедший решение сам, так как я храню файл как HttpPostedFile на сессии в то время как изменения вида

protected void activeView2(object sender, EventArgs e) 
    { 
     multiview.ActiveViewIndex = 2; 
     // storing uploaded file into sessin view HttpPostedFile 
     HttpPostedFile file = drFileUpload.PostedFile; 
     Session["f1"] = file; 

    } 

И Submit я извлечения, что HttpPostedFile

// getting the image file from the stream and saving to server 
       HttpPostedFile f1 = (HttpPostedFile)Session["f1"]; 
       int nFileLen = f1.ContentLength; 
       byte[] myData = new byte[nFileLen]; 
       f1.InputStream.Read(myData, 0, nFileLen); 

       if (f1.ContentLength != 0) 
       { 
        string filename = f1.FileName; 
        string extention = Path.GetExtension(filename); 
        if (extention.ToLower() == ".jpg" | extention.ToLower().ToLower() == ".png" | extention.ToLower().ToLower() == ".jpeg") 
        { 
         filename = txtMobile.Text; 
         int width = Convert.ToInt32(ConfigurationManager.AppSettings["ProfilePicWidth"]); 
         string Destination = Convert.ToString(Server.MapPath("../Images/Members/" + filename + extention)); 
         CommanFunctions.ResizeImage(width, f1.InputStream, Destination); 
         regi.ProfilePic = Destination; 
        } 
        else 
        { 
         lblError.Text = "Please Upload a valid Image"; 
         multiview.ActiveViewIndex = 1; 
        } 
       } 

Надежда Это поможет кто-то в будущем