Asp.net 消除列表框中的显式滚动

Asp.net 消除列表框中的显式滚动,asp.net,listbox,scroll,Asp.net,Listbox,Scroll,我有一个列表框,它是通过从另一个列表框迁移项目来填充的。我有两个asp.net按钮,即向上和向下滚动列表框。 列表框中每次可见的最大项目数为9,而最大项目数为21。因此,滚动条最终会出现。这是很明显的。 现在,如果我选择第21个项目并单击“向上”按钮,第21个项目将移动到上面的一个位置,但列表显示第一个项目的项目。我的意思是,列表被重新排列,客户端必须明确地向下滚动列表框以查看上面移动的第21项 我想,如果我选择了一个项目,然后单击向上按钮,列表框的视图应该在那里,它不应该从第一个项目开始显示列

我有一个列表框,它是通过从另一个列表框迁移项目来填充的。我有两个asp.net按钮,即向上和向下滚动列表框。 列表框中每次可见的最大项目数为9,而最大项目数为21。因此,滚动条最终会出现。这是很明显的。 现在,如果我选择第21个项目并单击“向上”按钮,第21个项目将移动到上面的一个位置,但列表显示第一个项目的项目。我的意思是,列表被重新排列,客户端必须明确地向下滚动列表框以查看上面移动的第21项

我想,如果我选择了一个项目,然后单击向上按钮,列表框的视图应该在那里,它不应该从第一个项目开始显示列表框

任何帮助都将不胜感激

下面是我的代码:

    protected void btnThird_Click(object sender, EventArgs e)
    {

        if (lstBoxSelectedColumns.SelectedIndex == 0)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "alertScrollUp", "alertMessage('Please select other item to scroll up or click the Down navigation button');", true);

        }
        else if (lstBoxSelectedColumns.SelectedIndex > 0)
        {
            for (int i = 0; i < lstBoxSelectedColumns.Items.Count; i++)
            {
                if (lstBoxSelectedColumns.Items[i].Selected)
                {
                    if (i > 0 && !lstBoxSelectedColumns.Items[i - 1].Selected)
                    {
                        ListItem belowItem = lstBoxSelectedColumns.Items[i];
                        lstBoxSelectedColumns.Items.Remove(belowItem);
                        lstBoxSelectedColumns.Items.Insert(i-1, belowItem);
                        lstBoxSelectedColumns.Items[i - 1].Selected = true;
                    }
                }
            }
        }
        else
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "alertSelectAtleastOneItem2", "alertMessage('Please select at least one item to scroll above');", true);
        }
    }
protectedvoid b第三次单击(对象发送者,事件参数e)
{
如果(lstBoxSelectedColumns.SelectedIndex==0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(),“alertScrollUp”,“alertMessage('请选择要向上滚动的其他项目或单击向下导航按钮');”,true);
}
else if(lstBoxSelectedColumns.SelectedIndex>0)
{
对于(int i=0;i0&!lstBoxSelectedColumns.Items[i-1].选中)
{
ListItem belowItem=lstBoxSelectedColumns.Items[i];
lstBoxSelectedColumns.Items.Remove(belowItem);
lstBoxSelectedColumns.Items.Insert(i-1,如下所示);
lstBoxSelectedColumns.Items[i-1].Selected=true;
}
}
}
}
其他的
{
Page.ClientScript.RegisterStartupScript(this.GetType(),“alertSelectAtleastOneItem2”,“alertMessage('请至少选择一个要在上面滚动的项目');”,true);
}
}
问候


Anurag

您是否尝试过使用设置了高度的?既然你已经有了一些大家都知道如何使用并经过测试的东西,为什么还要摆弄自定义类型控件呢?@DavidB你能更具体地说一下你想说什么吗?