Then on cascading destination use cascaded_word property.
On View:
<div class="editor-label">
@Html.LabelFor(model => model.PurchasedDto.CategoryId, "Category")
</div>
<div class="editor-field">
<table>
<tr>
<td style="width: 250px">@Html.AjaxComboBoxFor(model => model.PurchasedDto.CategoryId, "/Category/Lookup", "/Category/Caption",
new { style="width: 250px" },
new {
on_selected = @"$('#PurchasedDto\\.ProductId').ajc().clearValue();"
})</td>
<td>@Html.ValidationMessageFor(model => model.PurchasedDto.CategoryId)</td>
</tr>
</table>
</div>
<div class="editor-label">
@Html.LabelFor(model => model.PurchasedDto.ProductId, "Product")
</div>
<div class="editor-field">
<table>
<tr><td style="width: 250px">
@Html.AjaxComboBoxFor(model => model.PurchasedDto.ProductId, "/Product/Lookup", "/Product/Caption",
new { style="width: 250px" },
new
{
sub_info = true,
cascaded_word = "$('input[name=PurchasedDto.CategoryId]').val()"
})
</td>
<td>@Html.ValidationMessageFor(model => model.PurchasedDto.ProductId)</td>
</tr>
</table>
</div>
On Controller:
[HttpPost]
public JsonResult Lookup(string cascaded_word, string q_word, string primary_key, int per_page, int page_num)
{
using (var svc = SessionFactoryBuilder.GetSessionFactory().OpenSession())
{
int categoryId = 0;
bool isNumber = int.TryParse(cascaded_word, out categoryId);
var FilteredProduct = svc.Query<Product>()
.Where(x =>
(
categoryId == 0
||
(categoryId != 0 && x.Category.CategoryId == categoryId)
)
&&
(q_word == "" || x.ProductName.Contains(q_word))
);
var PagedFilter = FilteredProduct.OrderBy(x => x.ProductName)
.LimitAndOffset(per_page, page_num)
.Fetch(x => x.Category)
.ToList();
return Json(
new
{
cnt = FilteredProduct.Count()
,primary_key = PagedFilter.Select(x => x.ProductId)
,candidate = PagedFilter.Select(x => x.ProductName)
,cnt_page = PagedFilter.Count()
,attached = PagedFilter.Select(x =>
new[]
{
new string[] { "Product Code", x.ProductCode },
new string[] { "Category Code", x.Category.CategoryCode },
new string[] { "Category", x.Category.CategoryName }
}
)
}
);
}//using
}
Download the latest to see cascading capability in action: http://code.google.com/p/jquery-ajax-combobox-aspnet-mvc-helper/downloads/list
Get the code from SVN http://code.google.com/p/jquery-ajax-combobox-aspnet-mvc-helper/source/checkout
No comments:
Post a Comment