Was verwende ich anstelle von e.Werte.fügen Sie(... für die ListViewEditEventArgs um ein Bild hochzuladen

StackOverflow https://stackoverflow.com/questions/250528

Frage

ich kann das hochladen von Bildern in die Datenbank mithilfe linq und das listview-Steuerelement, wenn referancing der e.Werte Methode für die ListViewInsertEventArgs, aber es gibt keine solche Methode in der ListViewEditEventArgs, so was kann ich verwenden, um die gleichen Ergebnisse erzielen?

hier ist mein code einfügen:

protected void ProjectPhotosList_ItemInserting(object sender, ListViewInsertEventArgs e)

{

FileUpload uplImage = (FileUpload)ProjectPhotosList.InsertItem.FindControl("uplImage");

Label fileuploadlbl = (Label)ProjectPhotosList.InsertItem.FindControl("fileuploadlbl");

    byte[] img = null;
    if (uplImage.HasFile || !uplImage.FileName.ToLower().EndsWith(".jpg"))
    {
        try
        {
            img = new byte[uplImage.PostedFile.ContentLength];
            uplImage.PostedFile.InputStream.Read(img, 0, img.Length);
        }
        catch
        {
            fileuploadlbl.Text = "unable to upload " + uplImage.FileName.ToString();
        }
    }
    if (img == null)
    {
        e.Cancel = true;
        fileuploadlbl.Text = "Please choose a file to upload";
    }

    try
    {
        e.Values.Add("ProjectPhoto", new System.Data.Linq.Binary(img));
        fileuploadlbl.Text = "File Upload Successful";
    }
    catch
    {
        fileuploadlbl.Text = "File Upload Failed, please try again";
    }
}
War es hilfreich?

Lösung

ok also ich habe das Problem gelöst!Ich hatte gerade zu gehen, über die es ein bisschen anders:

das ist der wichtige code:

int mykey = int.Parse(ProjectPhotosList.DataKeys[e.ItemIndex].Wert.ToString());

es ist nur ein einfacher Weg, um die primarykey-Wert der ausgewählten Zeile.Ich fand einen Beitrag über das hochladen von pdf-Dateien zu einer Datenbank und beschlossen, Basis-der rest meines Codes auf, die.Hier ist der vollständige code:

protected void ProjectPhotosList_ItemUpdating(object sender, ListViewUpdateEventArgs e)

{

FileUpload myFile = (FileUpload)ProjectPhotosList.EditItem.FindControl("uploadImage");

    TextBox myCaption = (TextBox)ProjectPhotosList.EditItem.FindControl("ProjectPhotoCaptionTextBox");

    int mykey = int.Parse(ProjectPhotosList.DataKeys[e.ItemIndex].Value.ToString());

    if (myFile.HasFile)
    {

        //Get the posted file
        Stream fileDataStream = myFile.PostedFile.InputStream;

        //Get length of file
        int fileLength = myFile.PostedFile.ContentLength;

        //Create a byte array with file length
        byte[] fileData = new byte[fileLength];

        //Read the stream into the byte array
        fileDataStream.Read(fileData, 0, fileLength);

        //get the file type
        string fileType = myFile.PostedFile.ContentType;

        //Open Connection
        PHJamesDataContext db = new PHJamesDataContext();
        //Find the Right Row
        PHJProjectPhoto Newphoto = (from p in db.PHJProjectPhotos
                                    where p.ProjectPhotoId == mykey
                                    select p).Single<PHJProjectPhoto>();


        Newphoto.ProjectPhoto = fileData;

        db.SubmitChanges();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top