7
回答
火狐浏览器为什么不能实现asp.net页面局部刷新
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@liujiangbei 你好,想跟你请教个问题:

我在一个asp.net页面里,UpdatePanel中间有一个TextBox和一个Dropdownlist,想要实现的功能是选择DropDownlist的一项时,TextBox无刷新显示对应选择项的Value值。页面功能在ie浏览器和360浏览器中都能实现,但是火狐浏览器却不行,您可不可以帮我看一下这是怎么回事额
<无标签>
举报
wendaomuzi
发帖于5年前 7回/1K+阅
共有7个答案 最后回答: 5年前
这事..., 哪跟哪?
--- 共有 4 条评论 ---
oscar~跟asp.net有一毛钱关系? 5年前 回复
wendaomuzi回复 @李照全 : 哦,那这属于浏览器兼容性问题吗,有没有什么解决方法啊 5年前 回复
hello_152回复 @wendaomuzi : 你alert下FF返回的值,和IE类不太一样。 5年前 回复
wendaomuzi就是我想实现页面的局部刷新,但是在火狐浏览器中实现不了,不太明白问题在哪 5年前 回复

你好,这个问题严格来讲不属于兼容性问题,UpdatePanel不会在这么大的问题上出现这种兼容性问题,还是你使用得不当,你贴出代码让大家帮忙看看,UpdatePanel我们都很少用,封装得太严格了。

--- 共有 1 条评论 ---
wendaomuzi你好,谢谢回复,代码已经贴出,不用UpdatePanel,局部刷新要怎样实现呢,其实我想实现的挺简单的,就是一个TextBox(ReadOnly="true")后面跟一个DropDownlist,当选择DropDownlist某个下拉值时,TextBox显示相应内容。我想TextBox显示内容时页面不要刷新,因为一刷新就会影响页面其他内容,所以我就想到了局部刷新。不知道大侠有啥更好的方法不 5年前 回复

页面代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default5.aspx.cs" Inherits="MeteorologicalSystem.Test.Default5" %>

<!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 runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                台站编号:<asp:TextBox ID="TxtStationnum" runat="server" Width="100px" ReadOnly="True"></asp:TextBox>
                &nbsp;台站名:<asp:DropDownList ID="ddlStationName" runat="server" Width="120px" AutoPostBack="true"
                                OnSelectedIndexChanged="ddlStationName_SelectedIndexChanged">
                </asp:DropDownList>
            </ContentTemplate>
       
        </asp:UpdatePanel>
   
    </div>
    </form>
</body>
</html>

后台代码:

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using MR.DAL;

namespace MeteorologicalSystem.Test
{
    public partial class Default5 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {

                string stationsql = "select * from 系统配置台站VIEW1 where 类别='历史数据配置' and 参数类型='台站' order by nlssort(台站名称,'nls_sort=schinese_pinyin_m')";
                DataSet stationset = DBHelper.GetDataSet(stationsql);
                if (stationset.Tables[0].Rows.Count > 0)
                {
                    for (int i = 0; i < stationset.Tables[0].Rows.Count; i++)
                    {
                        ListItem list1 = new ListItem();
                        list1.Text = stationset.Tables[0].Rows[i]["台站名称"].ToString().Trim();//获取台站名称
                        list1.Value = stationset.Tables[0].Rows[i]["台站编号"].ToString().Trim();//获取台站编号
                        ddlStationName.Items.Add(list1);
                    }
                }
                ListItem li1 = new ListItem("--请选择--", "");
                this.ddlStationName.Items.Insert(0, li1);
            }
        }
        protected void ddlStationName_SelectedIndexChanged(object sender, EventArgs e)
        {
            TxtStationnum.Text = ddlStationName.SelectedValue.ToString();
        }
    }
}

没有仔细研究过,只大概知道主要原因应该是IE和FireFox实现AJAX时使用的对象不一样,貌似ASP.net不支持FireFox使用的 XMLHTTPRequest。
我也遇到同样的问题,在IE中能正常运行,但在火狐中就不能立即刷新了,但在页面加载时又会执行此事件。
顶部