Kære udviklere,
Jeg er ved at implementere filupload til mit projekt, hvor det skal være muligt for brugeren at uploade flere filer, og skal ved hver fil kunne vælge kvalitet af filen (det skal bruges til at videoupload).
Jeg har vha. javascript fået lavet et script, så jeg kan tilføje nye html elementer, så man kan vælge endnu en fil og vælge kvalitet.
- var counter = 1;
- function AddFileUpload() {
-
- var select = document.createElement('SELECT');
- select.name = "select_" + counter;
-
- <% foreach(var quality in QualitiesToList()) { %>
- select.innerHTML += '<option value="<%=quality.Qualities_ID %>"><%=quality.Qualities_Value %></option>';
- <% } %>
-
- var row = document.createElement('TR');
- var column1 = document.createElement('TD');
- var column2 = document.createElement('TD');
- var column3 = document.createElement('TD');
-
- column1.innerHTML = '<td><input id="file' + counter + '" name="file' + counter + '" type="file" /></td>';
- column3.innerHTML = '<td><input id="button_add' + counter + '" type="button" value="Add" onclick="AddFileUpload()" /><input id="button_remove' + counter + '" type="button" value="Remove" onclick="RemoveFileUpload(this)" /></td>';
-
- column2.appendChild(select);
-
- row.appendChild(column1);
- row.appendChild(column2);
- row.appendChild(column3);
-
- document.getElementById("FileUploadTable").appendChild(row);
-
- counter++;
- }
-
- function RemoveFileUpload(column) {
- document.getElementById("FileUploadTable").removeChild(column.parentNode.parentNode);
- }
- <div class="input-field">
- <div id="FileUploadContainer">
- <table id="FileUploadTable">
- <tr>
- <td><input id="file0" name="file0" type="file" /></td>
- <td id="selectcolumn_0">
- <select name="select_0">
- <% foreach (var quality in QualitiesToList()) { %>
- <option value="<%=quality.Qualities_ID %>"><%=quality.Qualities_Value %></option>
- <% } %>
- </select>
- </td>
- <td>
- <input id="button_add0" type="button" value="Add" onclick="AddFileUpload()" />
- <input id="button_remove0" type="button" value="Remove" onclick="RemoveFileUpload(this)" />
- </td>
- </tr>
- </table>
- </div>
-
- <!-- KNAP TIL TEST -->
- <asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="btnUpload_Click" />
- </div>
I min codebehind vil jeg så gerne modtage disse valg, og kunne bearbejde derfra.
Jeg er kommet til en dårlig løsning, hvor jeg får alle selects elementer ud, sepereret fra filuploads.
Filupload:
- for (int i = 0; i < Request.Files.Count; i++)
- {
- HttpPostedFile PostedFile = Request.Files[i];
-
- if (PostedFile.ContentLength > 0)
- {
- string FileName = Path.GetFileName(PostedFile.FileName);
- }
- }
Selects:
- foreach(string key in Request.Form.AllKeys)
- {
- if(key.StartsWith("select_"))
- {
- int value = Convert.ToInt32(Request.Form[key]);
- }
- }
Jeg vil gerne have kombineret resultaterne, så jeg kan tilføje hvert (samlet) resultat til en ny record i min tabel.
Nogen der har en smart løsning til dette?