0
我一直在使用這種tutorial創建一個屏幕,用戶可以在給定屏幕上添加額外的輸入字段MVC UIHint/Parital觀點與jQuery多選,動態創建問題
而不是使用文本框所有的Iv'e創建將呈現多選JQuery的小部件UIHint /局部視圖(我使用this component)
視圖模型的每一行項目
public class Micros
{
[UIHint("JsonComboBox")]
[AdditionalMetadata("id", "Lab_T_ID")]
[AdditionalMetadata("description", "Description")]
[AdditionalMetadata("action", "LabTestOptions")]
[AdditionalMetadata("controller", "Micro")]
[AdditionalMetadata("noneSelectedText", "Test")]
[AdditionalMetadata("comboboxWidth", "200")]
[DisplayName("Test")]
public Nullable<int> Lab_T_ID { get; set; }
[UIHint("JsonComboBox")]
[AdditionalMetadata("id", "Lab_SD_ID")]
[AdditionalMetadata("description", "Description")]
[AdditionalMetadata("action", "LabSampleDetailOptions")]
[AdditionalMetadata("controller", "Micro")]
[AdditionalMetadata("noneSelectedText", "Sample Details")]
[AdditionalMetadata("comboboxWidth", "300")]
[DisplayName("Sample Details")]
public Nullable<int> Lab_SD_ID { get; set; }
[DisplayName("Result")]
public string Result { get; set; }
}
局部視圖/ UIHint
@model int?
@{
var values = ViewData.ModelMetadata.AdditionalValues;
}
<select id="@values["id"]" multiple="multiple" style="width:@values["comboboxWidth"]px" > </select>
<script type="text/javascript">
$.getJSON('@Url.Action((string)values["action"], (string)values["controller"])',
null,
function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i][email protected]["id"] + '">' + j[i][email protected]["description"] + '</option>';
}
$('#@values["id"]').html(options);
$('#@values["id"] option:first').attr('selected', 'selected');
});
setTimeout(function() {
$("#@values["id"]").multiselect({
multiple: false,
header: "Select an option",
noneSelectedText: '@values["noneSelectedText"]',
selectedList: 1
});
}, 300);
</script>
組件渲染初始頁面加載罰款,但是當加入的項目,他們會添加...但它似乎JavaScript不執行/獲取添加..
任何想法?還在調試這個問題,會盡快,我覺得它發佈的修補程序,但我希望有人能指出我在正確的方向
更新
到目前爲止,我發現(我們」它看起來像),當用戶點擊添加另一個項目時,UIHint/Partial不會被渲染。 (否則,選擇將物品填充,並JQuery的部件將被應用)
再次感謝你噓,感覺就像我在學習跨越式發展。 我甚至不知道你可以做到這一點「select.data('value')」 – 2012-03-14 08:42:14
我將如何能夠指定哪些選擇我提取/從收到的HTML看 var select = $( 'select',html); 目前它創建兩個相同的選擇項目,並刪除文本框。 我試着添加一個id並選擇它,但它似乎沒有正常工作? – 2012-03-14 10:03:59
@Yenros,在這種情況下''('select',html)'選擇器將返回一個數組。然後你可以使用'$ .each'循環這個數組的結果:'$('select',html).each(function(index,select){...});' – 2012-03-14 10:05:51