防止页面刷新aspx.net

时间:2014-04-22 12:47:12

标签: c# javascript html asp.net

我有一个像这样的aspx页面:

<%@ Page Language="C#" CodeBehind="xxxx.aspx.cs" Inherits="xxxx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">  
<head id="Head1" runat="server">  
<title>How to use DropDownList OnSelectedIndexChanged event</title>  
</head>  
<body>  
<form id="form1" runat="server">  
<div>  
    <h2 style="color:Red">DropDownList: OnSelectedIndexChanged</h2>  
    <asp:Label   
         ID="Label1"  
         runat="server"  
         Font-Bold="true"  
         ForeColor="DodgerBlue"  
         Font-Size="Large"  
         >  
    </asp:Label>  

    <asp:DropDownList   
         ID="drop1"  
         runat="server"  
         AutoPostBack="true"  
         OnSelectedIndexChanged="GetLocationDetails"  
         BackColor="Crimson"  
         ForeColor="FloralWhite"  
        onclientselectedindexchanged="return false;"
         >  

    </asp:DropDownList>  
</div>  
</form>  
</body>  
</html>  

下拉列表“drop1”的值从数据库“xxxx.aspx.cs”页面填充。当我从下拉框中选择值时,从aspx.cs调用一个名为“GetLocationDetails”的函数。当我从下拉框中按下一个值时,页面将刷新,并且仅选择第一个值。请帮忙。

2 个答案:

答案 0 :(得分:1)

在页面加载事件中绑定下拉列表:

protected void Page_Load(object sender, EventArgs e)
{
      if(!IsPostBack)
      {
           //Bind here or call method that binds dropdownlist
      }
}

AutoPostBack设置为true,这会导致整个页面被发回服务器。 如果您没有跟踪IsPostBack page您的下拉列表再次绑定。

答案 1 :(得分:0)

下拉菜单中的AutoPostBack="true"会导致您的网页每次更改值时都会提交请求。并且由于您在每个页面加载时填充下拉列表,它将重置所有内容。

在您的代码中,在页面加载中,用以下内容填充您的填充代码:

if(!IsPostBack)
{


}

这将导致下拉列表仅在首页加载时填充,而不是在回发时填充。