方案
我有一个使用jquery转发器的问题,因为我可以继续在这种情况下添加记录资格记录。
问题
我遇到的问题是我无法获得“是/否”下拉列表或复选框以显示其从数据库中读取的值。正如您所看到的,从屏幕截图中我无法选择值" no"要显示在我的下拉列表中,如果选择了true,我将无法将我的复选框设置为"勾选"
注释的代码区域显示了我使用过的一些方法,正如你所看到的,我不能完全绑定行为(如果我错了就纠正我)因为它是另一个类的一部分所以我不能说" Model.historyLead"或Model.act.historyLead。 我正在返回所有其他值,但它只是复选框或下拉列表对我不起作用。 我非常感谢任何帮助解决这个问题。 此致
我的编辑视图的一部分
import { Compiler } from '@angular/core';
build() {
this.dynamicComponent = this.createDynamicComponent(this.stringFromDB);
this.dynamicModule = this._compiler.compileModuleSync(this.createDynamicModule(this.dynamicComponent));
}
createDynamicModule(componentType: any) {
@NgModule({
imports: [ ],
declarations: [
componentType
],
entryComponents: [componentType]
})
class RuntimeModule { }
return RuntimeModule;
}
createDynamicComponent(template: string) {
@Component({
selector: 'dynamic-component',
template: template ? template : '<div></div>'
})
class DynamicComponent {
constructor() {
}
}
return DynamicComponent;
}
使用的模型
@foreach (var item in Model.act)
{
<div data-repeater-item class="mt-repeater-item">
<div class="mt-repeater-input">
<label>Institution</label>
<input type="text" class="form-control" name="hisotryInput" value="@item.hisotryInput" />
</div>
<div class="mt-repeater-input">
<label>Description</label>
<div class="col-md-10">
@Html.TextArea("hisotrydescrip",item.hisotrydescrip, new { @class = "form-control", cols = 50, @rows = 5,@style="width:290px" })
</div>
</div>
<div class="mt-repeater-input">
<label>Lead Consultant?</label>
@*@Html.DropDownList("historyLead", null, String.Empty, new { @class = "form-control ", @Value = @item.historyLead })*@
@*@Html.CheckBox("historyLead", new { htmlAttributes = new { @class = "form-control",@value=@item.historyLead } })*@
<input type="checkbox" class="form-control" name="historyLead" value=@item.historyLead />
@*<select name="historyLead" >
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi" selected>Audi</option>
</select>*@
</div>
答案 0 :(得分:0)
尝试在条件为真时添加checked属性:
<input type="checkbox" name="historyLead" value="@item.historyLead" @(item.historyLead== "Yes" ? "checked='checked'" : "") class="form-control" />
您还可以向viewmodel添加布尔属性,然后使用CheckBoxFor
Entity Component System
答案 1 :(得分:0)
你误解了复选框的工作原理。
Value
在检查时发送到服务器Value
使用这两条规则,您可以说Value
应该是Yes
,因此如果选中,它会将Yes
的值回发给服务器。如果未选中,您可以添加一些逻辑if (String.IsNullOrEmpty(historyLead)) historyLead = "No"
。
但我建议将属性historyLead
更改为Boolean
,并将复选框的值设置为True
。由于默认值,如果未选中,它将变为False
。