5

AsyncUploadを使用します


 <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;
}

.cs で (動的に作成された) テキスト ボックスにアクセスしたい。

どうやってするか ?


完全な答え:

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();
                    }
4

2 に答える 2

2

私の意見では、ドキュメントは非常に明確です。参照しているページの説明タブを確認してください。ポストバック時に以下のコードを使用して、動的テキスト ボックスの値にアクセスできます。

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

ところで、このシナリオはここでよく説明されています:アップロードされたファイルに情報を追加する

于 2013-02-20T08:36:08.907 に答える
2

Request.Formポストバックで (ポストされたフォームにあった) 値を確認し、ポストバックされたすべてのフィールドをチェックする必要があります。

クライアント側で動的に作成された場合、テキストボックスの名前/IDがわからないのではないでしょうか? .csnameのオブジェクトが参照するのは、フォーム フィールドの であることに注意してください。Request

投稿した後にのみ、.cs の値にアクセスできます。

于 2013-02-20T08:36:16.033 に答える