Reputation: 65978
My Html code is as below.But always checked final option button as selected one.How can I fixed this?
<div id="employee" style="margin: 7px 0;">
<div>
<input id="james-johnson" type="radio" name="employee" value="james-johnson" checked="checked"><label for="james-johnson">James Johnson</label>
</div>
<div>
<input id="boss-hog" type="radio" name="employee" value="boss-hog" checked="unchecked"><label for="boss-hog">Boss Hog</label>
</div>
<div>
<input id="jake-sanders" type="radio" name="employee" value="jake-sanders" checked="unchecked"><label for="jake-sanders">Jake Sanders</label>
</div>
<div>
<input id="dawn" type="radio" name="employee" value="dawn" checked="unchecked"><label for="dawn">Dawn</label>
</div>
</div>
ASPX Code is as below
<div id="employee" style="margin: 7px 0;">
<% foreach (var employee in Model.Provider.Employees)
{ %><div>
<input id="<%: employee.Key %>"
type="radio" name="employee" value="<%: employee.Key %>" checked="<%:employee.IsEmployeeSelected ?? "unchecked" %>" /><label for="<%: employee.Key %>"><%: employee.Name%></label>
</div>
<% } %>
</div>
UPDATE (When I applied @Satpal method):
<div id="employee" style="margin: 7px 0;">
<div>
<input id="james-johnson" type="radio" name="employee" value="james-johnson" checked="checked"><label for="james-johnson">James Johnson</label>
</div>
<div>
<input id="boss-hog" type="radio" name="employee" value="boss-hog" checked=""><label for="boss-hog">Boss Hog</label>
</div>
<div>
<input id="jake-sanders" type="radio" name="employee" value="jake-sanders" checked=""><label for="jake-sanders">Jake Sanders</label>
</div>
<div>
<input id="dawn" type="radio" name="employee" value="dawn" checked=""><label for="dawn">Dawn</label>
</div>
</div>
Upvotes: 0
Views: 114
Reputation: 133453
As The checked attribute is a boolean attribute. When present, it specifies that an element should be pre-selected (checked) when the page loads.
Set checked
attribute only if employee is Selected
otherwise don't set it
<input id="<%: employee.Key %>"
type="radio" name="employee" value="<%: employee.Key %>"
"<%:employee.IsEmployeeSelected ? "checked" : "" %>" />
<label for="<%: employee.Key %>"><%: employee.Name%>
</label>
Modified Code
"<%: employee.IsEmployeeSelected ? "checked" : "" %>"
Convert employee.IsEmployeeSelected
to boolean property
EDIT: As per comment Currentely it's "checked" and null
"<%: !string.IsNullOrEmpty(employee.IsEmployeeSelected) ? employee.IsEmployeeSelected : "" %>"
Or simply set <%:employee.IsEmployeeSelected ?? "" %>
like
<input <%:employee.IsEmployeeSelected ?? "" %> />
As OP has updated the field IsEmployeeSelected
to boolean
public bool IsEmployeeSelected { get; set; }
Thus use <%:employee.IsEmployeeSelected ? "checked" : "" %>
instead of checked="<%:employee.IsEmployeeSelected ? "checked" : "" %>"
Upvotes: 1