因此,我正在开发一个微软的Lightswitch应用程序在C#中使用Visual Studio 2013,我需要一个动态的用户界面。微软Lightswitch使用C#创建动态用户界面,jQuery的移动和JavaScript
基本上在数据库中我有一个Person表,一个技能表和一个PersonSkills表,它们将两者联系在一起(一个人可以有多种技能,每种技能都有技能级别。自动取出并完成)。
现在AddSkill页面上,我需要能够添加,因为我想尽可能多的技能,而不必一遍遍打开相同AddSkill弹出。我目前的做法是(使用谷歌浏览器)右键单击+按钮搜索技能并选择检查元素,以查看该按钮的CSS代码(因为它是一个css/jquery移动元素)。
这给了我该技能框和级别框的CSS代码,并且每当技能发生变化时使用lightswitch的postRender方法和.change jquery方法,我将其他技能和级别框的代码添加到组件。
myapp.AddEditPersonSkill.left_postRender = function (element, contentItem) {
// Write code here.
var context = $(element);
//Sorry that its all in one line and terrible...
context.change(function() {
context.append('<div class="msls-first-column msls-presenter msls-ctl-rows-layout msls-vauto msls-hstretch msls-presenter-content msls-font-style-normal msls-hscroll msls-label-host msls-rows-layout" style="min-width: 200px; max-width: 400px; width: 229px;"><div class="msls-clear msls-first-row msls-presenter msls-ctl-details-modal-picker msls-vauto msls-hstretch msls-leaf"><div class="msls-label msls-label-align-top msls-clear msls-vauto"><label>Skill</label></div><div class="msls-clear msls-presenter-content msls-font-style-normal msls-vauto msls-hscroll"><div class="id-container"><form class="ui-listview-filter ui-bar-a ui-listview-filter-inset" role="search"><div class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield ui-body-a ui-mini"><input placeholder="Search" data-type="search" class="ui-input-text ui-body-a"><a href="#" class="ui-input-clear ui-btn ui-btn-up-a ui-shadow ui-btn-corner-all ui-fullsize ui-btn-icon-notext ui-input-clear-hidden" title="clear text" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="delete" data-iconpos="notext" data-theme="a" data-mini="false"><span class="ui-btn-inner"><span class="ui-btn-text">clear text</span><span class="ui-icon ui-icon-delete ui-icon-shadow"> </span></span></a></div></form><ul class="id-auto-complete-element ui-listview ui-listview-inset ui-corner-all ui-shadow" data-role="listview" data-inset="true" data-filter="true" data-filter-theme="a" data-filter-placeholder="Search"></ul><a class="id-modal-button msls-has-search msls-large-icon ui-btn ui-btn-up-a ui-shadow ui-btn-corner-all ui-mini ui-btn-icon-notext" tabindex="0" data-role="button" data-icon="msls-add" data-mini="true" data-iconpos="notext" data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="a" title=""><span class="ui-btn-inner"><span class="ui-btn-text"></span><span class="ui-icon ui-icon-msls-add ui-icon-shadow"> </span></span></a></div><div class="id-auto-complete-dropdown"></div></div></div><div class="msls-clear msls-last-row msls-presenter msls-ctl-text-box msls-vauto msls-hstretch msls-leaf msls-redraw"><div class="msls-label msls-label-align-top msls-clear msls-vauto"><label for="b8bfe3adf-Level" class="ui-input-text">Level</label></div><div class="msls-clear msls-presenter-content msls-font-style-normal msls-vauto msls-hscroll"><div class="ui-input-text ui-shadow-inset ui-corner-all ui-btn-shadow ui-body-a ui-mini"><input type="text" class="id-element ui-input-text ui-body-a" data-mini="true" maxlength="255" id="b8bfe3adf-Level"></div></div></div><div class="msls-clear"></div></div>');
});
};
这就是所有罚款和良好的 - 但是,现在的问题是:新的技能框(刚加入到屏幕)没有工作按钮 - CSS/jQuery Mobile的按钮不执行任何操作。第一个仍然正常工作,但新的一个坏了。
有没有比我所做的更好的方式做到这一点?有没有内置的lightswitch方式来做到这一点?
编辑:所以它看起来像jQuery的按键事件是JavaScript文件中的其他地方,而不是按钮声明本身内:
http://demos.jquerymobile.com/1.2.1/docs/buttons/buttons-events.html
这意味着即使我创造了“看起来和感觉'按钮,他们实际上没有做任何事情。我必须找出按钮调用的方法,然后使用.bind jquery方法将新按钮绑定到相同的方法。
你能澄清,如果已经存在的技术记录,你想要的是从人的屏幕联想到现有的技能(创建新PersonSkill记录)不开放每次都有PersonSkill屏幕? – 2014-10-07 15:31:47
是的,这是绝对正确的。我正在努力的+按钮提出了存储在不同表格中的现有技能记录列表(可预见的是技能表格)。 – Antag 2014-10-08 09:25:02