خرید بک لینک

سلام خسته نباشید
دوستان اگر بخوایم مثلاً این سوال رو برای خودمون حل کنیم
یه تعداد آلبوم موسیقی داریم که هر کدوم تعدادی موزیک دارن می خوایم یک Grid تو در تو داشته باشیم که اولی بیاد نام آلبوم و مشخصات آلبوم رو نشون بده و وقتی روی ردیف کلیک میکنیم بیاد مشخصات موزیک رو نشون بده ... ( به همراه یک ستون برای پخش موزیک )
من اومم از کد زیر استفاده برای این کار جواب میده اما player رو نمیذاره ( حتی توی if که توی template column هم گذاشتم نمیره )
و حتی با ClientTemplate هم رفتم که ارور میداد

کد دستورات Cshtml


<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
</script>

<div class="k-rtl">
@(Html.Kendo().Grid<MusicSite.Models.ViewModel.Alb umeMusicsVM>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(e => e.AlbumeName).Width(110).Title("نام آلبوم");
columns.Bound(e => e.Artist_Band_Name).Width(110).Title("نام بند یا گروه");
columns.Bound(e => e.ReleaseYear).Width(110).ClientTemplate("#=moment (ReleaseYear).format('jYYYY/jMM/jDD')#").Title("تاریخ انتشار");
columns.Command(command =>
{
//command.Custom("View").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Ads", gridid = "grid_Ads", CLASS = "detail_button", Target = Url.Action("Details", "Ads") }.Dic());
command.Custom("Edit").Text("ویرایش").HtmlAt tributes(new DialogOpenerOption() { gridField = "Id_Ads", gridid = "grid_Ads", CLASS = "edit_button", Target = Url.Action("Edit", "Albume") }.Dic());
command.Custom("Delete").Text("حذف").HtmlAttrib utes(new DialogOpenerOption() { gridField = "Id_Ads", gridid = "grid_Ads", CLASS = "delete_button", Target = Url.Action("Delete", "Albume") }.Dic());
}).Width(70);
})
.Sortable()
.Pageable()
.Scrollable()
.Resizable(e => e.Columns(true))
.ClientDetailTemplateId("template")
.HtmlAttributes(new { style = "height:600px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(6)
.Read(read => read.Action("HierarchyBinding_Albume", "Albume"))
)
.Events(events => events.DataBound("dataBound")) )

<script id="template" type="text/kendo-tmpl">
@(Html.Kendo().Grid<MusicSite.Models.ViewModel.Alb umeMusicsVM>()
.Name("grid_#=Id_Albume#") // template expression, to be evaluated in the master context
.Columns(columns =>
{
columns.Bound(o => o.MusicName).Width(110);
columns.Bound(o => o.Keywords).Width(110);
columns.Bound(o => o.URLSEO).Width(110);
columns.Bound(o => o.CategoryName).Width(110);
columns.Bound(o => o.FileMusicUrl).Filterable(false).Groupable(false) .Title("فایل")
.Template(
@<text>
@if (item.IsSoundMusic)
{
@Html.Html5().Media.Audio(item.Id_Music.ToString() , @"../.." + item.FileMusicUrl, "مرورگر شما از این پخش کننده پشتیبانی نمی کند برای بدست اوردن این امکان مرورگر خود را بروز نمایید", new { @style = "border:solid 1px #CCCCCC;height:30px" })
}
else if (!item.IsSoundMusic)
{
@Html.Html5().Media.Video(item.Id_Music.ToString() , @".." + item.FileMusicUrl, "مرورگر شما از این پخش کننده پشتیبانی نمی کند برای بدست اوردن این امکان مرورگر خود را بروز نمایید", new { @style = "border:solid 1px #CCCCCC;height:30px" })
}

</text>);
columns.Command(command =>
{
//command.Custom("View").Text(" ").HtmlAttributes(new DialogOpenerOption() { gridField = "Id_Ads", gridid = "grid_Ads", CLASS = "detail_button", Target = Url.Action("Details", "Ads") }.Dic());
command.Custom("Edit").Text("ویرایش").HtmlAt tributes(new DialogOpenerOption() { gridField = "Id_Music", gridid = "grid_Ads", CLASS = "edit_button", Target = Url.Action("Edit", "Music") }.Dic());
command.Custom("Delete").Text("حذف").HtmlAttrib utes(new DialogOpenerOption() { gridField = "Id_Music", gridid = "grid_Ads", CLASS = "delete_button", Target = Url.Action("Delete", "Music") }.Dic());
}).Width(100);
})
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(10)
.Read(read => read.Action("HierarchyBinding_Musics", "Albume", new { Id_Albume = "#=Id_Albume#" }))
)
.Pageable()
.Sortable()
.Scrollable()
.Resizable(e => e.Columns(true))
.ToClientTemplate()
)
</script>
<script>
function dataBound() {
this.expandRow(this.tbody.find("tr.k-master-row").first());
}
</script>
</div>



کد دستورات Controller

public ActionResult HierarchyBinding_Albume([DataSourceRequest]DataSourceRequest request)
{
retu Json(GetData().ToDataSourceResult(request));
}
private static IEnumerable<AlbumeMusicsVM> GetData()
{
MusicSiteEntities db = new MusicSiteEntities();
retu (from albume in db.Albume
where albume.Users_Id == Classes.UserInfo.userID
select new AlbumeMusicsVM()
{
Id_Albume = albume.Id_Albume,
AlbumeName = albume.AlbumeName,
Artist_Band_Name = albume.Artist_Band_Name,
ReleaseYear = albume.ReleaseYear,
FolderName = albume.FolderName,
Users_Id = albume.Users_Id,
CreateDate = albume.CreateDate.Value,
FileCoverUrl = albume.FileCoverUrl,
Ordershow = albume.Ordershow,
IsSoundAlbume = albume.IsSoundAlbume

}).OrderBy(m => m.Ordershow).OrderByDescending(d => d.CreateDate).ToList().Distinct();
}

public ActionResult HierarchyBinding_Musics(Guid Id_Albume, [DataSourceRequest] DataSourceRequest request)
{
MusicSiteEntities db = new MusicSiteEntities();
var data= (from music in db.Music
where music.Albume_Id == Id_Albume
select new AlbumeMusicsVM()
{
Id_Music = music.Id_Music,
MusicName = music.MusicName,
Likes = music.Likes,
Dislikes = music.Dislikes,
Keywords = music.Keywords,
MusicText = music.MusicText,
URLSEO = music.URLSEO,
CategoryName = music.Category.CategoryName,
IsSoundMusic = music.IsSoundMusic
}).ToList();

retu Json(data.ToDataSourceResult(request));

}

تصویر چیزی که برام میاد که player درش قرار نداره...

Untitled.png

برچسب: نویسنده: محمد رضا جوادیان تاريخ: پنجشنبه 12 فروردين 1395 ساعت: 19:09

صفحه بندی