C#改变下拉选框值,刷新页面后如何保持页面位置?

来源:百度知道 编辑:UC知道 时间:2024/06/27 09:01:28
自己做了一个小程序,连接Access数据库。

在录入数据的页面中,由于属性较多,采用了许多下拉菜单,结果好像每改变一个下拉选框的值,页面都会刷新一次。

这个不重要,问题在于,属性比较多,页面比较多,当一屏显示不下的时候,位于下面的下拉选框的值一旦改变,因为会刷新,所以页面就回到了顶端,这时候如果要继续选择下面的选框就要把页面拉到下面去,结果一改变数值就又回到顶端,如此周而复始,太麻烦了。

寻求一种方法,改变了下方(一屏显示不下的)下拉菜单值,无论刷不刷新,页面仍然定位在此处,不需要拉动页面滚动条。

如上,有什么办法或者参数可以实现?请各位大侠不吝赐教,感谢!
二楼大侠说的方法我已经想到了,但是问题在于我需要随时根据下拉菜单的数值来进行运算并作出提示,不刷新不方便。
我想要的是 既能刷新又能定位的方法。

一楼的大侠是否能说的更清楚一点儿?我比较菜,不太明白。

把这些下拉菜单的AutoPostBack属性设置成false,就不会每选一次都刷新页面了。
为了更新所录入的数据,可以添加一个“更新”(也可叫“提交”)按钮,此时再PostBack执行数据库的SQL UPDATE INSERT指令。

问题补充:二楼大侠说的方法我已经想到了,但是问题在于我需要随时根据下拉菜单的数值来进行运算并作出提示,不刷新不方便。
我想要的是 既能刷新又能定位的方法。
=====================================================================
如果你一定要AutoPostback的话,可以用客户端Javascript来实现自动窗口滚动。

首先,你需要一个隐藏字段来存储你所点击的下拉菜单的当前位置:
<asp:HiddenField ID="HiddenField1" runat="server" />
其次,需要修改<body>标记, 改成:<body runat="server" id="bodyID">
这样才可以在服务器端对它进行修改。
你还要修改你的下拉菜单标记,加一条客户端事件响应,类似于这样:
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" onchange="HiddenField1.value = this.offsetTop;">
处理onchange事件,这样当它的内容改变,准备Postback前,会把当前坐标存到HiddenField1中。
最后,在你的页面的Page_Load事件处理中加上一条:
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)