PDA

View Full Version : customize edit popup



javadnaby
پنج شنبه 06 فروردین 1394, 12:44 عصر
سلام دوستان.
من میخوام با kendo ui for asp.net mvcبر روی هر دکمه ویرایش هر سطر که کیک شد توسط کاربر درون پاپاپ باز شده یک کندو آپلودر در آن داشته باشم.از دوستان میخوام راهنمایی کنند .خیلی واسم مهمه.

mehdin69
پنج شنبه 06 فروردین 1394, 12:48 عصر
مشکلت سطری هست که باز میشه یا Uploader ؟؟؟

javadnaby
پنج شنبه 06 فروردین 1394, 13:11 عصر
مشکل من اینه که نمی دونم چجوری آپلودر را درون پاپاپ ادیتور قرار بدم.
کسی کتاب یا منبع آموزشی سراغ نداره؟

mehdin69
پنج شنبه 06 فروردین 1394, 13:16 عصر
آها
من یه helper نوشتم با js خودت واسه خودت درستش کن این نمیاد توی Popup واست Uploader بندازه مثلاً یک View میزنی به اسم Upload و توی اون Uploader قرار میدی اما همه چی بصورت popup باز میشه و کارات و میکنی


columns.Command(command =>
{
command.Custom("Edit").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Brand", gridid = "grid_Brand", CLASS = "edit_button", Target = Url.Action("Edit", "Brand") }.Dic());
command.Custom("Delete").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Brand", gridid = "grid_Brand", CLASS = "delete_button", Target = Url.Action("Delete", "Brand") }.Dic());
}).Width(60);




namespace CarSite.Helpers
{
public class DialogOpenerOption
{
public DialogOpenerOption()
{
Width = "auto";
Height = "auto";
ShowEffect = "clip";
ShowDir = "left";
HideEffect = "clip";
HideDir = "right";
IsModal = "true";
Title = "Dialog Title";
Text = "";
Target = "Target";
id = "random_" + GRandom.Next();
Method = "POST";
CLASS = string.Empty;
gridField = "";
gridid = "";
Data = "";
OnClick = "";
}

public string CLASS { get; set; }

public string Width { get; set; }
public string Height { get; set; }
public string ShowEffect { get; set; }
public string ShowDir { get; set; }
public string HideEffect { get; set; }
public string HideDir { get; set; }
public string IsModal { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public string Target { get; set; }
public string id { get; set; }
public string Method { get; set; }

public string Data { get; set; }

public string OnClick { get; set; }

public string gridid { get; set; }

public string gridField { get; set; }

public Dictionary<string, object> Dic()
{
string functioncallstring = "";
if (OnClick == "")
functioncallstring = string.Format("CMIS_showDialog(this)");
else
functioncallstring = string.Format(OnClick);
Dictionary<string, object> dic = new Dictionary<string, object>()
{
{"id", this.id},
{"href", "javascript:;"},
{"data-i-Width", this.Width},
{"data-i-Height", this.Height},
{"data-i-ShowEffect", this.ShowEffect},
{"data-i-ShowDir", this.ShowDir},
{"data-i-HideEffect", this.HideEffect},
{"data-i-HideDir", this.HideDir},
{"data-i-IsModal", this.IsModal},
{"data-i-Title", this.Title},
{"data-i-Text", this.Text},
{"data-i-Target", this.Target},
{"data-i-Method", this.Method},
{"data-i-Data", this.Data},
{"class", this.CLASS},
{"onclick", functioncallstring},
{"data-i-gridid",this.gridid },
{"data-i-gridfield", this.gridField}
};

return dic;

}

}

و اینم کد JS


function CMIS_showDialog(idselector) {
var item = jQuery(idselector);
var gridid = item.attr('data-i-gridid');
var gridfield = item.attr('data-i-gridfield');

var data2 = "";
if (gridfield != "") {
var grid = jQuery("#" + gridid);
if (grid.length == 0) {
alertbox("grid not found");
return;
}
var dataItem = grid.data("kendoGrid").dataItem(item.closest("tr"));
var rowid = dataItem[gridfield];
//$('#divid').load(jQuery(e.currentTarget).attr("myclass") + dataItem[id]);
data2 = { id: rowid };
}
jQuery.ajax({
type: item.attr('data-i-Method'),
url: item.attr('data-i-Target'),
data: /*item.attr('data-i-Data')*/data2
}).done(function (data) {
var dialogid = "dialog" + Math.floor((Math.random() * 100000) + 1);
randomDialogId = dialogid;
jQuery("body").append("<div id='" + dialogid + "' title='Basic dialog'>" + data + "</div>");
jQuery("#" + dialogid).dialog({
width: item.attr('data-i-Width'),
height: item.attr('data-i-Height'),
ShowEffect: item.attr('data-i-ShowEffect'),
ShowDir: item.attr('data-i-ShowDir'),
HideEffect: item.attr('data-i-HideEffect'),
HideDir: item.attr('data-i-HideDir'),
//position: { my: "center top", at: "center bottom", of: 'nav' },
position: { my: "center", at: "center", of: $("#tblOuter") },
modal: true,/* item.attr('data-i-IsModal')*/
title: item.attr('data-i-Title'),
close: function (event, ui) {
//onClose();
//jQuery("#" + dialogid).location.reload();
if (gridid != '') {
jQuery("#" + item.attr('data-i-gridid')).data("kendoGrid").dataSource.read();
}
jQuery("#" + dialogid).remove();
}
}).keypress(function (e) {
if (e.keyCode == jQuery.ui.keyCode.ENTER) {
e.preventDefault();
}
});
});

}

javadnaby
پنج شنبه 06 فروردین 1394, 13:43 عصر
ظاهرا منظورم را بد رسوندم.
من از یک گرید استفاده می کنم و میخوام وقتی بر روی دکمه ویرایش آن کلیک شد یک پاپ آپ باز شود و درون آن یک آپلودر هم باشد علاوه بر امکان ویرایش فیلد ها به صورت معمولی.

javadnaby
پنج شنبه 06 فروردین 1394, 13:47 عصر
اینم یه نما ایی از پروژه

mehdin69
پنج شنبه 06 فروردین 1394, 13:50 عصر
خوب اینم همینکارو میکنه
یه دکمه edit میسازی با این دستور


command.Custom("Edit").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Brand", gridid = "grid_Brand", CLASS = "edit_button", Target = Url.Action("Edit", "Brand") }.Dic());

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

javadnaby
پنج شنبه 06 فروردین 1394, 13:50 عصر
129731
میخوام داخل این پاپاپ یک آپلود واسه آپلود عکس داشته باشم

mehdin69
پنج شنبه 06 فروردین 1394, 13:59 عصر
یه بار کد بالا رو تست کن
ببین تنها فرقی که داره این صفحه popup رو دوباره باید طراحی کنی با tag های html بعدش همینطوری واست باز میشه

اینجا صفحه ای که باید طراحی کنی رو نوشتم
Target = Url.Action("Edit", "Brand")

javadnaby
پنج شنبه 06 فروردین 1394, 21:00 عصر
اگر کسی راه ساده تر سراغ داره بگه.
با تشکر از مهدی