How to embed multiple jQuery line of code in custom HtmlHelpers ASP.NET MVC
Posted
by embarus
on Stack Overflow
See other posts from Stack Overflow
or by embarus
Published on 2010-04-13T00:38:03Z
Indexed on
2010/04/13
0:42 UTC
Read the original article
Hit count: 415
I 've tried to create my own HTML Helper which work fine for my need but I can't embed many lines of jQuery code in my extension HtmlHelpers class. I've tried @ literal for jQuery code I doesn't work or I need to escape every line of code that I thing I not good for multiple line of code. I don't know if there is another way to achieve this problem like <<
Therefore, I need to include jQuery plugin file and put implement script
after HTML tag. I find it would be convenience if I could put every in HTML helper and put a single line of code in aspx page for example
<%= Html.ParentChildSelectList(string parentName, string childName, IEnumerable parentViewData, IEnumerable childViewData, int parentSize, in childSize) %>
The following code is the way that I used now.
the .aspx page
Category model.CategoryID)%> , new { size = 10 })%> model.SubcategoryID,"subcategory") %> model.SubcategoryID)%> , new { size = 10 })%><script type="text/javascript">
jQuery.sarapadchang.parentChildSelectList(
{
parentId : "CategoryID" ,
childId : "SubcategoryID",
actionName : "GetSubcategoryList",
controllerName : "Json"
}
);
</script>
I put in head tag to include ParentChildSelectList.js
the following code for ParentChildSelectList.js (function($) {
$.sarapadchang = {
parentChildSelectList: function(options) {
// $("#CategoryID option").click(function()
$("#" + options.parentId).find("option").click(function() {
$("#" + options.childId).empty(); //clear data
$("#" + options.childId).append('<option>loading...</option>');
$.post("/" + options.controllerName + "/" + options.actionName + "/" + $(this).attr('value'), "", function(data) {
var html = "";
$.each(data, function(index, entry) {
html +=
'<option value="' +
entry['Value'] +
'">' +
entry['Text'] +
'</option>';
}
);
$("#" + options.childId).empty()
$("#" + options.childId).append(html);
}, "json"); //end getJson
});
})(jQuery);
To illustrate you, I've attached simple solution, please follow this link. http://www.thaileaguefc.net/ParentChildSelectList.rar Please accept my apologies if my English is difficult to understand.
I am looking forward to hearing from you.
Your faithfully, Theeranit
© Stack Overflow or respective owner