0

我整天都在努力解决以下问题。

我正在 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   

任何帮助,将不胜感激。

谢谢。

4

0 回答 0