私は次の問題を理解しようと一日中苦労しています。
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
どんな助けでも大歓迎です。
ありがとう。