2

で2つのフィールドがあります。1 つはマスター フィールドであり、複製できます。HTML.DisplayFor を介して両方を表示します。ユーザーが必要に応じてクローンを更新できるように、マスターに加えられる可能性のある変更を表示するための実用的なアプローチを考え出そうとしています。これは一種の「変更の追跡」機能だと思いました。私が持っていたと思った:

1) それぞれが異なるレコードに存在するため、各フィールドの更新日を比較します。ただし、これはレコードが変更されたことを示しているだけです。

2) 両方を比較し、異なる場合はユーザーに示します。繰り返しますが、何が違うかではなく、テキストが同じか違うかを示しているだけです。

強調表示/取り消し線タイプの「追跡」機能を提供するユーティリティ/アセンブリがあるかどうかはわかりません。

助けてくれてありがとう。

編集

これはもっと複雑かもしれないと思います。新しい値と元の値を実際に比較して、変化を示す必要があると思います。したがって、オリジナルはログテーブルに保存する必要があるため、古いバージョンと新しいバージョンがあります。ユーザーがこれをさらに変更した可能性があるため、クローンが何であるかは関係ありません。

4

1 に答える 1

1

マスター/クローン/非表示フィールドの背後にあるアイデアを理解しているかどうかはよくわからないので、その部分を少し即興で作りましたが、これで少なくともこれを行う方法についてのアイデアが得られるはずです.

これにより、基本的に元の「マスター」値がこのフィールドに保存されます。

@Html.Hidden("hidden", "I am a hidden field");

を使用してビューモデルを返すときに、この値を完全に設定できることに注意してください

@Html.HiddenFor()

ユーザーがmasterテキストボックスからタブで移動し、値が「私は隠しフィールドです」と等しくない場合、アラートが表示されます。(以下のように明示的にロードするか、またはを使用して、何らかの方法でjqueryをロードする必要があることに注意してください@Scripts.Render("~/bundles/jquery")

<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript">

    $(document).ready(function ()
    {
        $("#master").focusout(function () {
            compareValues();
        });      

        function compareValues(){
            if ($("#master").val() !=  $("#hidden").val())
            {
                $("#hidden").val();
                alert("Original master value: " + $("#hidden").val() + " new master value: " + $("#master").val());
            }
        }

    });
</script>

@Html.Hidden("hidden", "I am a hidden field");

<input type="text"  id="master" />
<input type="text"  id="clone"/>
于 2013-07-20T16:17:46.227 に答える