0

私は次の問題を理解しようと一日中苦労しています。

Microsoft とは異なる CheckBoxList をレンダリングできるように、ASP .NET でカスタム Web コントロールを作成しています。

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