zoukankan      html  css  js  c++  java
  • 如何刷新Gridview的内容(ajax)许金杰

    前台部分:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

    <!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>使用 AJAX,局部刷新 GridView 进行数据绑定的简单实现</title>
        <script type="text/javascript">
            function GetData(p) {
                document.getElementById("d").innerHTML = "正在读取数据……";
                h = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
                h.open("GET", '<%=Request.FilePath %>?id=' + p.value, true);
                h.onreadystatechange = function () {
                    if (h.readyState == 4) {
                        if (h.status >= 200 && h.status < 300) {
                            document.getElementById("d").innerHTML = h.responseText;
                        }
                        else {
                            document.getElementById("d").innerHTML = "<h2>数据操作错误:</h2>" + h.responseText;
                        }
                    }
                }
                h.send(null);
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:GridView ID="GridView1" runat="server">
        </asp:GridView>
        <asp:Panel ID="Header" runat="server">
        </asp:Panel>
        <select onchange="GetData(this)">
            <option value="1">项目一</option>
            <option value="2">项目二</option>
        </select>
        <div id="d">
        </div>
        </form>
    </body>
    </html>

    后台部分

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.QueryString["id"] != null)
            {
                Response.ClearContent();
                GridView1.DataSource = CreateDataSourceByXianhuiMeng();
                GridView1.DataBind();
                System.Text.StringBuilder sb = new System.Text.StringBuilder();//可变长字符串
                System.IO.StringWriter sw = new System.IO.StringWriter(sb);//将信息写入字符串
                HtmlTextWriter htw = new HtmlTextWriter(sw);//将标记字符和文本写入 服务器控件输出流
                Literal header = new Literal();//在网页上保留显示静态文本的位置
                header.Text = "<h2>项目 " + Request.QueryString["id"] + "</h2>";
                Header.Controls.Add(header);
                Header.RenderControl(htw);
                GridView1.RenderControl(htw);

                Response.Write("这里查询数据,输出结果就可以了。结果:" + sb.ToString());
                Response.End();
            }

        }
        System.Data.DataView CreateDataSourceByXianhuiMeng()//返回一个数据视图
        {
            System.Data.DataTable dt = new System.Data.DataTable();

            dt.Columns.Add(new System.Data.DataColumn("id", typeof(System.Int32)));
            dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
            dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
            dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));

            System.Data.DataRow dr;
            for (int i = 1; i < 10; i++)
            {
                System.Random rd = new System.Random(Environment.TickCount * i); ;
                dr = dt.NewRow();//创建信行
                dr[0] = i;
                dr[1] = i.ToString();
                dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);
                dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);
                dt.Rows.Add(dr);
            }
            System.Data.DataView dv = new System.Data.DataView(dt);
            return dv;
        }


        public override void VerifyRenderingInServerForm(Control control)
        {
            /// 添加这个override void VerifyRenderingInServerForm(Control control),是为了避免出现
            /// 类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。
            /// 的异常
        }

    }

  • 相关阅读:
    用 Python 带你看各国 GDP 变迁
    Fluent Interface(流式接口)
    probing privatePath如何作用于ASP.NET MVC View
    Word插入htm文件导致文本域动态增加的一个问题
    Visual Studio 2013附加进程调试IE加载的ActiveX Control无效解决方法
    Ubuntu下Chrome运行Silverlight程序
    Windows Phone Bing lock screen doesn't change解决方法
    SPClaimsUtility.AuthenticateFormsUser的证书验证问题
    Web Service Client使用Microsoft WSE 2.0
    Visual Studio 2013安装Update 3启动crash的解决方法
  • 原文地址:https://www.cnblogs.com/zhwl/p/2013241.html
Copyright © 2011-2022 走看看