не уверен, что это единственная проблема, но я думаю, что селекторы, которые вы создаете, не то, что вы хотите сделать.
.editRow.Grupa
будет сопоставлять элемент с классом editRow и классом .Grupa
я думаю, что эта строка:
var ddlsource = '.editRow.Grupa';
должно быть просто $(this)
;
и ваш var ddlsource = '.editRow.Grupa';
должно быть что-то вроде var target = $(this).siblings('[name$=.Produs]:first');
, а затем любой из них: $(ddltarget)
должен быть целью.
что-то вроде этого:
$(document).ready(function () {
$('[name$=.Grupa]').change(function () { //targets things with the name ending in .Grupa
var url = '<%= Url.Content("~/") %>' + "Comenzi/ForProduse";
var source =$(this); //this will be which ever one is changed
var target = $(this).siblings('[name$=.Produs]:first'); //this SHOULD find the first select with a name ending in .Produs that is the sibling (same level in the dom to the changed select)
$.getJSON(url, { id: source.val() }, function (data) {
target.empty();
$.each(data, function (index, optionData) {
target.append("<option value='" + optionData.Value + "'>" + optionData.Text + "</option>");
});
});
});
});
Я не проверял это, но это общее представление о том, что вам нужно для достижения. обратите внимание, что селекторы, которые я использую, довольно неэффективны, если вы можете изменить сгенерированный код так, чтобы ваши блоки выбора имели известный класс, это было бы намного более аккуратным кодом и более эффективным