使用Lightswitch中的JavaScript以编程方式在DropDown元素中选择值

时间:2014-02-19 11:12:24

标签: javascript jquery javascript-events visual-studio-lightswitch dropdownbox

当我的LSML表单加载时,我需要从Drop-Down元素(图片中的“Type”)中预选一个选项。

当表单加载时,我需要看到已经在此元素中选择了值“2-intermediate-type”。

这是一个向数据库添加新实体的表单。

我尝试的解决方案是在此Drop-Down元素的postRender事件中编写一些javaScript代码。

像这样:

myapp.AddBeneficiary.Beneficiary_TIP_postRender = function (element, contentItem) {
    $(contentItem).text("2-intermediate-type");
    element.textContent = "2-intermediate-type";
    $(element) = "2-intermediate-type";
    $(element).options["2-intermediate-type"].selected = true;
}

以上四种变体都不适合我。

我是MS Lightswith和JavaScript的初学者,所以我不确定在这种情况下这是否是一项艰难或轻松的任务。

但是我很惊讶它不能那么容易,因为在其他编程语言/平台上这个任务很简单。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

问题在于Lightswitch和sharepoint的架构。

通过选择一个选项,您实际上并未设置值或已选中。相反,您正在更改.ui-btn-text的文本。这就是我所拥有的:

if(screen.Customers.selectedItem.countryDrop!= null){             。$( “#filterRecentByCountry”)父()找到( “UI-BTN-文本 ”)找到(“ 跨度”)文本(screen.Customers.selectedItem.countryDrop)。 }

我有自定义下拉列表,所以我使用ID,但原则与本机下拉列表完全相同。我真的希望这会有所帮助。

答案 1 :(得分:0)

解决方案的一部分就像@VadimsSamsinovs所说:更改文本的下拉没有帮助,我们需要将对象设置为数据模型对象。这将自动更改视图。

1。)创建一个查询,返回您想要选择的对象,例如:的 GetBenificiaryTipDefault()即可。在查询创建期间,我将查询属性“返回的结果数”设置为“一”,因此它只返回一个对象。

2.。)从JavaScript调用查询并将返回的对象应用于下拉内容项:

myapp.AddBeneficiary.Beneficiary_TIP_postRender = function (element, contentItem) {
    myapp.activeDataWorkspace.ApplicationData.GetBenificiaryTipDefault().execute().then(function (response) {               
        contentItem.value = response.results[0];
    }); 
}

欢呼声