1

私はこの質問を投稿する前に調査を行いましたが、役立つものは何も見つかりません。jqueryを使用してasp.netサーバーコントロールを作成できるかどうかはわかりません。サーバーで実行されるアップロード制御入力があり、特定のボタンがクリックされるたびにJavaScriptコードを使用して新しいアップロード制御入力を作成しました。ただし、新しいアップロードコントロールを制御するために、新しいRegularExpressionValidatorを作成する必要があります。私のページで複数のアップロードコントロールとRegularExpressionValidatorを使用するのではなく、これを実現できますか?これまでに行ったことについてコードを精査します。

function addFileUploadBox() {
if (!document.getElementById || !document.createElement)
    return false;

var uploadArea = document.getElementById("upload-area");
var count = uploadArea.getElementsByTagName("input").length;

    if (!uploadArea)
        return;

    var newLine = document.createElement("br");
    uploadArea.appendChild(newLine);

    var newUploadBox = document.createElement("input");

    // Set up the new input for file uploads
    newUploadBox.type = "file";
    newUploadBox.size = "20";

    // The new box needs a name and an ID
    if (!addFileUploadBox.lastAssignedId)
        addFileUploadBox.lastAssignedId = 100;

    newUploadBox.setAttribute("id", "dynamic" + addFileUploadBox.lastAssignedId);
    newUploadBox.setAttribute("name", "dynamic:" + addFileUploadBox.lastAssignedId);
    newUploadBox.setAttribute("runat", "server");
    uploadArea.appendChild(newUploadBox);
    $("<asp:RegularExpressionValidator ID='regular" + addFileUploadBox.lastAssignedId + "' ValidationExpression='(.*?)\.(jpg|jpeg|png|gif|JPG)$' runat='server' ErrorMessage='Invalid file' ControlToValidate='dynamic" + addFileUploadBox.lastAssignedId + "' ForeColor='Red'></asp:RegularExpressionValidator>").insertAfter("#dynamic" + addFileUploadBox.lastAssignedId);
    addFileUploadBox.lastAssignedId++;
}
4

1 に答える 1

4

これは不可能です。

理由: Asp.net は、xhtml から出力サーバー側への変換を行います。

jquery または javascript を介して行ったことはすべて、クライアント側で行われます。サーバーは、作成しようとしたばかりのバリデータについて何も知りません。

于 2012-12-21T01:28:09.653 に答える