2013-02-15 12 views
5

Ben AsyncUploadArka planda kodda Raduploader ile dinamik olarak oluşturulan metin kutusunun değeri nasıl alınır?


<telerik:RadAsyncUpload runat="server" ID="rada_attach" OnClientFileUploaded="onClientFileUploaded" 
           MultipleFileSelection="Disabled" InitialFileInputsCount="1" MaxFileInputsCount="1" 
           Width="100%" /> 

function onClientFileUploaded(radAsyncUpload, args) { 
    var row = args.get_row(), 
     inputName = radAsyncUpload.getAdditionalFieldID("TextBox"), 
     inputType = "text", 
     inputID = inputName, 
     input = createInput(inputType, inputID, inputName), 
     label = createLabel(inputID), 
     br = document.createElement("br"); 

    row.appendChild(br); 
    row.appendChild(input); 
    row.appendChild(label); 

} 

function createInput(inputType, inputID, inputName) { 
    var input = document.createElement("input"); 

    input.setAttribute("type", inputType); 
    input.setAttribute("id", inputID); 
    input.setAttribute("name", inputName); 

    return input; 
} 

Ben .cs (dinamik olarak oluşturulan) metin kutusu erişmek istediğiniz kullanın.

Bu nasıl yapılır?


Tam Cevap: Bence belgelerinde

var $ = $telerik.$; 

function onClientFileUploaded(radAsyncUpload, args) { 
    var $row = $(args.get_row()); 
    var inputName = radAsyncUpload.getID("TextBox"); 
    var inputType = "text"; 
    var inputID = inputName; 
    var input = createInput(inputType, inputID, inputName); 
    var label = createLabel(inputID); 
    $row.append("<br/>"); 
    $row.append(label); 
    $row.append(input); 
} 

function createInput(inputType, inputID, inputName) { 
    var input = '<input type="' + inputType + '" id="' + inputID + '" name="' + inputName + '" />'; 
    return input; 
} 

function createLabel(forArrt) { 
    var label = '<label for=' + forArrt + '>info: </label>'; 
    return label; 
} 

foreach (UploadedFile UF in rada_attach.UploadedFiles) 
       { 
        if (UF.GetFieldValue("TextBox") != null) 
        { 
         OBJ.File_name = UF.GetFieldValue("TextBox"); 
        } 
        else 
        { 
         OBJ.File_name = UF.GetName(); 
        } 
+3

Bu istemci tarafında oluşturulan değil, sunucu tarafında bu değeri erişebilirsiniz. CS, postalanmadıkça ona dokunamaz. –

+0

Üretilen kimliği sunucuya kaydediyor musunuz? –

+0

no id yapma ... –

cevap

2

iyi açıktır. Başvuruda bulunduğunuz açıklama sekmesini kontrol edin.

if (rada_attach.UploadedFiles.Count > 0) { 
    for (var index = 0; index < rada_attach.UploadedFiles.Count; ++index) { 
     var textBoxValue = rada_attach.UploadedFiles[index].GetFieldValue("TextBox"); 
    } 
} 

BTW, bu senaryo burada iyi dcoumented edilir: Adding Information to Uploaded Files

+0

Bunu deneyin: 'foreach (rada_attach.UploadedFiles içinde UploadedFile UF) { byte [] dosya = AttachDAL.ReadFully (UF.InputStream); if (UF.GetFieldValue ("TextBox")! = Null) { OBJ.File_name = UF.GetFieldValue ("TextBox"); } else OBJ.File_name = UF.GetName(); } ' –

+0

ancak 'UF.GetFieldValue (" TextBox ")' her zaman null –

+0

Bu kodu 'FileUploaded' olayında kullanıyor musunuz? –

2

Sen Request.Form değerleri (yani yayınlanmıştır formda idi) kontrol etmeniz gerekir Sen postback aşağıdaki kodla dinamik metin kutularının değerini erişebilir Geri gönderme ve geri gönderilen tüm alanlar üzerinde bir kontrol gerçekleştirin.

İstemci tarafında dinamik olarak oluşturulmuşsa, metin kutusunun adını/kimliğini bilmeyeceğinizi tahmin ediyorum. Form alanının nesnesinin .cs 'in göreceği name olacağını unutmayın.

geri gönderdiniz yalnızca bir kere .cs

İlgili konular