すべてのオンライン ユーザーを含む ListBox があります。ユーザーは MySQL データベースからロードされ、毎秒 ListBox にロードされます。ListBox に項目を追加すると、ListBox がスクロールアップしますが、これが発生することは望ましくありません。
<asp:UpdatePanel ID="usersPanel" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:ListBox ID="lstUsers" runat="server" ViewStateMode="Enabled" AutoPostBack="True"></asp:ListBox>
<asp:Timer ID="mainTimer" runat="server" ontick="Timer1_Tick" Interval="1000"></asp:Timer>
</ContentTemplate>
</asp:UpdatePanel>
タイマーコード:
protected void Timer1_Tick(object sender, EventArgs e)
{
...
MySqlDataReader datareader = command.ExecuteReader();
if (datareader.HasRows) {
lstUsers.Items.Clear();
while (datareader.Read()) {
lstUsers.Items.Add(new ListItem(datareader.GetString(1), datareader.GetInt32(0).ToString()));}
}
}
javascript でやろうとしましたが、リストボックスのスクロールバーの位置を取得/設定できませんでした