我整天都在努力解决以下问题。
我正在 ASP .NET 中创建一个自定义 Web 控件,以便我可以呈现与 Microsoft 不同的 CheckBoxList。
public class DefaultCheckBoxList : ListControl, IRepeatInfoUser,INamingContainer, IPostBackDataHandler
我正在渲染多个复选框(也是自定义控件)
protected override void Render(HtmlTextWriter writer)
{
int i = 0;
foreach (ListItem listItem in Items)
{
SetControlToRepeatID(this, _controlToRepeat, i);
_controlToRepeat.Text = listItem.Text;
_controlToRepeat.Checked = listItem.Selected;
_controlToRepeat.Enabled = Enabled ? listItem.Enabled : Enabled;
_controlToRepeat.AccessKey = _oldAccessKey;
_controlToRepeat.RenderControl(writer);
i++;
}
}
问题是,即使Items
在 .aspx 中选择了
<Items>
<asp:ListItem Selected="true" Value="Mon" Text="Mon" ></asp:ListItem>
<asp:ListItem Enabled="false" Value="Tue" Text="Tue" ></asp:ListItem>
<asp:ListItem Selected="true" Value="Wed" Text="Wed"></asp:ListItem>
<asp:ListItem Selected="true" Value="Thu" Text="Thu" ></asp:ListItem>
<asp:ListItem Selected="true" Value="Fri" Text="Fri"></asp:ListItem>
<asp:ListItem Selected="true" Value="Sat" Text="Sat"></asp:ListItem>
<asp:ListItem Selected="true" Value="Sun" Text="Sun"></asp:ListItem>
</Items>
</cc1:DefaultCheckBoxList>
枚举只选择了第一个。我检查了 .NET 参考代码,它们似乎覆盖了
internal virtual bool IsMultiSelectInternal;
因此,我试图在我的代码中做同样的事情。问题是我无法从我的 Web 控件中找到要覆盖的特定属性。
internal override bool IsMultiSelectInternal {
get { `
return true;
}
}
返回:错误
51 'IsMultiSelectInternal': no suitable method found to override
任何帮助,将不胜感激。
谢谢。