نمایش نتایج 1 تا 18 از 18

نام تاپیک: ارسال اطلاعات از ویو به اکشن

  1. #1
    کاربر دائمی آواتار Black_Hammer
    تاریخ عضویت
    تیر 1395
    محل زندگی
    نسیم شهر
    پست
    109

    Post ارسال اطلاعات از ویو به اکشن

    سلام دوستان یه سوال داشتم ممنون می شم پاسخ بدین

    من توی ویوی خودم می خوام یه اسکریپت بزار که وقتی کاربر روی یه کلید کلیک کرد به تعداد کلیک هاش یک مثلا تکس باکس جدید اضافه بشه . من توی اکشن خودم هم یک list<> جنریک دارم که از نوع یک کلاس می باشد و چند تا پارامتر دیگه که باید پر بشن سوال من اینه که چطور می تونم اطلاعات اون تکس باکس ها را دونه دونه و جدا از هم به لیست خودم اضافه کنم .

    من از viewModel استفاده می کنم تا اطلاعات خودم رو به ویو ارسال کنم و می خوام که از روش :binede استفاده کنم برای دریافت اطلاعات خود توی اکشن . آیا این کار شدنی ؟ اگه بله چطور ممکنه؟

    اگه هم شدنی نیست لطفا روش صحیح پر کردن یک لیست از نوع جنریک رو توی اکشن به من توضیح بدید خیلی ممنون از کمکتون.

  2. #2

    نقل قول: ارسال اطلاعات از ویو به اکشن

    اره شدنیه

    کدی که به صورت داینامیک هست باید با جی کوئری بنویسی
    برای اینکه داده ها بایند بشه در اکشن باید هم نام با متغیر باشد البته با یک تفاوت که یک ایندکس هم داره

    برای نمایش داده ها در حالت ویرایش از این کد استفاده کن

                                for (var i = 0; i < Model.tempBasePersonelActivity.Count(); i++)                            {
    <div id="divActivity@(i)" class="row">
    <div class="col-lg-3">
    @Html.HiddenFor(m => Model.tempBasePersonelActivity[i].Id, new { @class = "ActivityField1" })
    </div>
    <div class="col-lg-3">
    @Html.DropDownListFor(m => Model.tempBasePersonelActivity[i].ActivityId, new SelectList(ViewBag.Activity, "Value", "Text", Model.tempBasePersonelActivity[i].ActivityId), new { @class = "ActivityField2 form-control" })
    </div>
    <div class="col-lg-3">
    @Html.TextBoxFor(m => Model.tempBasePersonelActivity[i].Caption, new { @class = "ActivityField3 form-control" })
    </div>
    <div class=" controls">
    <input value="حذف" name='btnDelete@(i)' id='btnDelete@(i)' onclick="removeRowActivity(@(i))" class="btn btn-default" type="button">
    </div>
    </div>
    }


    کد برای اضافه کردن تکس باکس به صورت داینامیک

                $("#" + divName).append('<div class="col-lg-3 controls"><input type="hidden" value="' + activityId + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityId" class = "ActivityField1"></div>');


  3. #3

    نقل قول: ارسال اطلاعات از ویو به اکشن

    خروجی نهایی

    1.GIF
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: gif 1.GIF‏ (20.2 کیلوبایت, 68 دیدار)

  4. #4

    نقل قول: ارسال اطلاعات از ویو به اکشن

    از گراف دیف برای ذخیره تغییر ات در بانک اطلاعاتی استفاده کن

  5. #5
    کاربر دائمی آواتار Black_Hammer
    تاریخ عضویت
    تیر 1395
    محل زندگی
    نسیم شهر
    پست
    109

    نقل قول: ارسال اطلاعات از ویو به اکشن

    نقل قول نوشته شده توسط parsdarab مشاهده تاپیک
    اره شدنیه

    کدی که به صورت داینامیک هست باید با جی کوئری بنویسی
    برای اینکه داده ها بایند بشه در اکشن باید هم نام با متغیر باشد البته با یک تفاوت که یک ایندکس هم داره

    برای نمایش داده ها در حالت ویرایش از این کد استفاده کن

                                for (var i = 0; i < Model.tempBasePersonelActivity.Count(); i++)                            {
    <div id="divActivity@(i)" class="row">
    <div class="col-lg-3">
    @Html.HiddenFor(m => Model.tempBasePersonelActivity[i].Id, new { @class = "ActivityField1" })
    </div>
    <div class="col-lg-3">
    @Html.DropDownListFor(m => Model.tempBasePersonelActivity[i].ActivityId, new SelectList(ViewBag.Activity, "Value", "Text", Model.tempBasePersonelActivity[i].ActivityId), new { @class = "ActivityField2 form-control" })
    </div>
    <div class="col-lg-3">
    @Html.TextBoxFor(m => Model.tempBasePersonelActivity[i].Caption, new { @class = "ActivityField3 form-control" })
    </div>
    <div class=" controls">
    <input value="حذف" name='btnDelete@(i)' id='btnDelete@(i)' onclick="removeRowActivity(@(i))" class="btn btn-default" type="button">
    </div>
    </div>
    }


    کد برای اضافه کردن تکس باکس به صورت داینامیک

                $("#" + divName).append('<div class="col-lg-3 controls"><input type="hidden" value="' + activityId + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityId" class = "ActivityField1"></div>');

    سلام و ممنون از راهنمایی شما من متوجه نشدم آیا منظورتون این بود که اکشن خودمون باید هم نام با او لیستی باشه که می خوایم به صورت داینامیک مقدار دهی کنیم باید باشه؟

    و این گراف دیف هم نمی دونم چیه میشه لطف کنید و بیشتر توضیح بدین .
    من نفهمیدم چی گفتین

  6. #6
    کاربر دائمی آواتار Black_Hammer
    تاریخ عضویت
    تیر 1395
    محل زندگی
    نسیم شهر
    پست
    109

    نقل قول: ارسال اطلاعات از ویو به اکشن

    نقل قول نوشته شده توسط parsdarab مشاهده تاپیک
    از گراف دیف برای ذخیره تغییر ات در بانک اطلاعاتی استفاده کن
    بنده دارم از sql server و entityframework استفاده می کنم می شه بفرمایید گراف دیف چیست؟

  7. #7

    نقل قول: ارسال اطلاعات از ویو به اکشن

    در مورد گراف دیف میتونید این رو مطالعه کنی
    http://www.dotnettips.info/post/1860...A%A9-graphdiff

  8. #8

    نقل قول: ارسال اطلاعات از ویو به اکشن

    فرض کنید همچین کلاسی هست

    public sealed class BasePersonel
    {
    [NotMapped]
    [Display(Name = "نوع فعالیت")]
    public int? ActivityId { get; set; }
    [NotMapped]
    public string ActivityCaption { get; set; }
    [NotMapped]
    public List<BasePersonelActivity> tempBasePersonelActivity { get; set; }


    public ICollection<BasePersonelActivity> BasePersonelActivitys { set; get; }


    }


    که فیلد ActivityId و ActivityCaption برای داده هایی که کاربر وارد میکنه بعد روی دکمه اضافه کلیک می کنه که باید به صورت دینامیک فیلد هایی بسازه که بعدا این فیلد ها به صورت اتوماتیک به لیستی که در اکشن هست انتساب داده میشه برای انتصاب اتوماتیک باید idو name اون فیلد هایی که به صورت داینامیک ساخته میشه درست بنویسی

    برای این مثل به این صورت میشه

                $("#" + divName).append('<div class="col-lg-3 controls"><input type="hidden" value="' + activityId + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityId" class = "ActivityField1"></div>');            $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + activityStr + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityStr" class = "ActivityField2 form-control"></div>');
    $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + captionActivity + '" name="tempBasePersonelActivity[' + (iActivity) + '].Caption" class = "ActivityField3 form-control"></div>');






    این باعث میشه اون فیلدهایی که به صورت داینامیک ساخته میشه به لیست tempBasePersonelActivity منتصب بشه
    آخرین ویرایش به وسیله parsdarab : پنج شنبه 13 آبان 1395 در 18:32 عصر

  9. #9
    کاربر دائمی آواتار Black_Hammer
    تاریخ عضویت
    تیر 1395
    محل زندگی
    نسیم شهر
    پست
    109

    نقل قول: ارسال اطلاعات از ویو به اکشن

    نقل قول نوشته شده توسط parsdarab مشاهده تاپیک
    فرض کنید همچین کلاسی هست

    public sealed class BasePersonel
    {
    [NotMapped]
    [Display(Name = "نوع فعالیت")]
    public int? ActivityId { get; set; }
    [NotMapped]
    public string ActivityCaption { get; set; }
    [NotMapped]
    public List<BasePersonelActivity> tempBasePersonelActivity { get; set; }


    public ICollection<BasePersonelActivity> BasePersonelActivitys { set; get; }


    }


    که فیلد ActivityId و ActivityCaption برای داده هایی که کاربر وارد میکنه بعد روی دکمه اضافه کلیک می کنه که باید به صورت دینامیک فیلد هایی بسازه که بعدا این فیلد ها به صورت اتوماتیک به لیستی که در اکشن هست انتساب داده میشه برای انتصاب اتوماتیک باید idو name اون فیلد هایی که به صورت داینامیک ساخته میشه درست بنویسی

    برای این مثل به این صورت میشه

                $("#" + divName).append('<div class="col-lg-3 controls"><input type="hidden" value="' + activityId + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityId" class = "ActivityField1"></div>');            $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + activityStr + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityStr" class = "ActivityField2 form-control"></div>');
    $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + captionActivity + '" name="tempBasePersonelActivity[' + (iActivity) + '].Caption" class = "ActivityField3 form-control"></div>');






    این باعث میشه اون فیلدهایی که به صورت داینامیک ساخته میشه به لیست tempBasePersonelActivity منتصب بشه
    دوست عزیز میشه محبت کنی و این پروژه ای که اینو توش نوشتی رو هم بزاری اینجا . شرمنده ولی من یه مقدار تازه کار می باشم و سخت متوجه می شم

  10. #10

    نقل قول: ارسال اطلاعات از ویو به اکشن

    شرمندتم

    400 مگ هست

  11. #11
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ارسال اطلاعات از ویو به اکشن

    سلام

    ممکنه کاربر بعضی از فیلدها رو حذف و بعضی فیلدهای جدید در بین فیلدهای قبلی اضافه کنه.

    اگر ترتیب فیلدها برای ما مهم باشه، چطوری این ترتیب رو دریافت و ذخیره کنیم؟

  12. #12

    نقل قول: ارسال اطلاعات از ویو به اکشن

    سلام
    میباست id و name رو آپدیت کنید

  13. #13
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ارسال اطلاعات از ویو به اکشن

    نقل قول نوشته شده توسط parsdarab مشاهده تاپیک
    سلام
    میباست id و name رو آپدیت کنید
    مشکل من نحوه یافتن id و name هسته در زمانیکه کاربر هر کدوم رو ممکنه حذف کنه.

    اگر با یک مثال راهنمایی بفرمائید ممنون میشم

  14. #14

    نقل قول: ارسال اطلاعات از ویو به اکشن

    سمت سرور یا کلاینت؟
    سیستمی که من کار کردم به این صورته که ابتدا کاربر در سمت کلاینت میاد اون مجموعه ای رو که میخاد رو میسازه.
    حالا ممکنه در این بین بخواد یکی از اون ردیف ها رو از ابتدا وسط یا انتها حذف کنه.
    اگر از ابتدا حذف کنه باید فیلدهای بعدی رو اپدیت کنه id و name . چرا آپدیت کنه؟ چون اگر اپدیت نشه در سمت سرور اون مجموعه در لیست بایند نمیشه.
    همین طور اگر بخواهد از وسط این مجموعه حذف کنه.
    در اینجا ممنطورم از اپدیت یعنی بایذ با کد جی کوئری id و name رو بگیره و به صورت
    [I]tempBasePersonelActivity.Caption عمل کنید.
    که در اینجا متغیر i یک کانتر می باشه.
    وقتی که شما به این صورت مقدار دهی idو name رو انجام میدید موقع ارسال اطلاعات به سرور
    این مقداری که داخل این تکس باکس ها هستند سریالیز میکنه و میفرسته سمت سرور و در سمت سرور دیسریالیز میشه و به اون لیست انتسای داده میشه.
    البته عملیات
    سریالیز و دیسریالیز به صورت اتوماتیک انجام میشه.
    فقط تا جایی که اون کانتر مقدارش پشت سر هم باشه

  15. #15
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ارسال اطلاعات از ویو به اکشن

    سلام

    اگر ممکنه تابع حذف جیکوئری رو هم بزارید.

    ممنون

  16. #16

    نقل قول: ارسال اطلاعات از ویو به اکشن

            //add div and filed
    function addRowActivity(activityId, activityStr, captionActivity) {
    //debugger
    iActivity++;

    var divName = 'divActivity' + iActivity;
    $("#partActivity").append('<div id=' + divName + ' class="row"></div>');
    //debugger
    //http://stackoverflow.com/questions/18065668/jquery-and-html-textboxfor
    $("#" + divName).append('<div class="col-lg-3 controls"><input type="hidden" value="' + activityId + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityId" class = "ActivityField1"></div>');
    $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + activityStr + '" name="tempBasePersonelActivity[' + (iActivity) + '].ActivityStr" class = "ActivityField2 form-control"></div>');
    $("#" + divName).append('<div class="col-lg-3 controls"><input type="text" value="' + captionActivity + '" name="tempBasePersonelActivity[' + (iActivity) + '].Caption" class = "ActivityField3 form-control"></div>');
    //http://stackoverflow.com/questions/7707074/creating-dynamic-button-with-click-event-in-javascript
    var element = document.createElement("input");
    //Assign different attributes to the element.
    element.type = 'button';
    element.value = 'حذف'; // Really? You want the default value to be the type string?
    element.name = ''; // And the name too?
    element.className = 'btn btn-default';
    element.onclick = //removeRowActivity
    function removeRowActivity() { // Note this is a function
    //debugger
    $("#" + divName).remove();
    iActivity--;
    updateActivity();
    };
    $("#" + divName).append(element);
    }
    function updateActivity() {
    //debugger
    //http://stackoverflow.com/questions/29864980/how-to-bind-list-of-objects-in-asp-net-mvc-when-one-item-in-between-is-deleted
    $(".ActivityField1").each(function (iTemp) {
    $(this).prop('name', "tempBasePersonelActivity[" + iTemp + "].Id");
    });
    $(".ActivityField2").each(function (iTemp) {
    $(this).prop('name', "tempBasePersonelActivity[" + iTemp + "].ActivityId");
    });
    $(".ActivityField3").each(function (iTemp) {
    $(this).prop('name', "tempBasePersonelActivity[" + iTemp + "].Caption");
    });
    }

  17. #17
    کاربر دائمی آواتار hp1361
    تاریخ عضویت
    دی 1384
    محل زندگی
    تهران
    پست
    750

    نقل قول: ارسال اطلاعات از ویو به اکشن

    ممنون بابت پاسخگویی

    گویا GraphDiff برای EF Core ارائه نشده. نویسنده ش برای جایگذینش Detached رو که خودش تهیه کرده معرفی کرده.

    اما برای MVC مثالی نزاشته و مشخص نیست چطور باید باهاش کار کرد.

    شما جایگزین یا مثال از همین Detached سراغ ندارین؟

    ممنون

  18. #18

    نقل قول: ارسال اطلاعات از ویو به اکشن

    من هنوز به سمت ef core نرفتم

تاپیک های مشابه

  1. ارسال اطلاعات از فرم به یک جدول اکسس
    نوشته شده توسط newmefmef در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: پنج شنبه 14 آبان 1394, 11:41 صبح
  2. ارسال اطلاعات از SQLServer به DOS
    نوشته شده توسط yazdan در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: شنبه 06 مرداد 1386, 19:06 عصر
  3. ارسال اطلاعات از فرم به sp در اکسس پروجکت
    نوشته شده توسط ITST-1 در بخش Access
    پاسخ: 0
    آخرین پست: سه شنبه 09 خرداد 1385, 07:02 صبح
  4. ارسال اطلاعات از دیتابیس به آرایه
    نوشته شده توسط shahroozj در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: چهارشنبه 22 تیر 1384, 10:32 صبح
  5. ارسال اطلاعات از دلفی به اکسل
    نوشته شده توسط حسینی در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 20 مرداد 1383, 15:19 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •