, ;)
CheckBoxList ListView, DataBind, . :
public enum SiteType
{
Owner = 1,
Reseller = 2,
SubReseller = 4,
Distributor = 8
Manufacturer = 16,
Consumer = 32
}
24, (8 + 16).
HiddenField EditItem ListView :
<EditItemTemplate>
<tr>
<td>
<asp:CheckBoxList ID="cblSiteTypes" runat="server" RepeatLayout="Flow"
DataSourceID="ObjectDataSource4" DataTextField="Key" DataValueField="Value" />
<asp:HiddenField ID="hfSiteTypes" runat="server" Value='<%# Bind("SiteType") %>' OnDataBinding="hfSiteTypesBnd" />
</td>
</tr>
</EditItemTemplate>
CheckBoxList DataSource, Dictionary . OnDataBinding HiddenField :
protected void hfSiteTypesBnd( object sender, EventArgs e )
{
HiddenField hf = (HiddenField)sender;
short val = Convert.ToInt16( hf.Value );
CheckBoxList cblSiteTypes = (CheckBoxList)hf.Parent.FindControl( "cblSiteTypes" );
cblSiteTypes.ClearSelection();
foreach ( ListItem li in cblSiteTypes.Items )
{
short v = Convert.ToInt16( li.Value );
if ( ( val & v ) == v ) li.Selected = true;
}
}
Et voilà!