• UpdatePanel GridView刷新


    前台代码
    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

    <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        Namespace
    ="System.Web.UI" TagPrefix="asp" %>

    <!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">
                
    <asp:ScriptManager ID="ScriptManager1"     runat="server">    
                  
    </asp:ScriptManager>
              
    <table>
              
              
    <tr>
                
    <td width="44%">
                   
    <asp:UpdatePanel ID="uid"  runat="server">
                
                
    <ContentTemplate>
                    
    &nbsp;<asp:Button ID="Button1" runat="server" Text="异步回送得到数据" OnClick="Button1_Click" />&nbsp;&nbsp;
                        
    <asp:Button ID="Button2" runat="server" Text="整页回送 --刷新页面" OnClick="Button2_Click" /><br />
                        
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="100%" DataKeyNames="userid" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating">
                            
    <Columns>
                                
    <asp:BoundField DataField="userid" HeaderText="userid" />
                                
    <asp:BoundField DataField="username" HeaderText="username" />
                                
    <asp:CommandField ShowEditButton="True" />
                                
    <asp:CommandField ShowDeleteButton="True" />
                            
    </Columns>
                        
    </asp:GridView>
                        
    <br />
                       
    <asp:Label ID="Label1" runat="server" Font-Bold="True" Font-Size="Large" Width="239px"></asp:Label>
                      
    </div>
            
    &nbsp;&nbsp;
                
    </ContentTemplate>
                
    <Triggers>
                    
    <asp:AsyncPostBackTrigger    ControlID="Button1" /> <%-- 注册控件的调用方法--%>
                    
    <asp:AsyncPostBackTrigger ControlID="Button3" /> <%--这两个控件无刷新调用 --%>
                    
    <asp:PostBackTrigger  ControlID="Button2" />
                
    </Triggers>
                  
            
    </asp:UpdatePanel>
            
    &nbsp;&nbsp;
                    
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Button ID="Button3" Text="添加" runat="server" OnClick="Button3_Click" />
                
    </td>
                
    <td  width="4%"></td>
                
    <td style="vertical-align: top;  47%">
                这边是使用UpdatePanel 是弹出一个对话框,UpdatePanel不支持Page.ClientScript.RegisterStartupScript()
                    
    &nbsp;<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                        
    <ContentTemplate>
                            
    <asp:Button ID="Button4" runat="server" OnClick="Button4_Click" Text="弹出对话框" />
                        
    </ContentTemplate>
                        
    <Triggers>
                            
    <asp:AsyncPostBackTrigger    ControlID="Button4" /> <%-- 注册控件的调用方法--%>

                        
    </Triggers>
                    
    </asp:UpdatePanel>

                
                
    </td>
              
    </tr>
              
    </table>

        
    </form>
    </body>
    </html>
    CS 代码
    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;


    public partial class _Default : System.Web.UI.Page 
    {
        
    private const string STRCONN = "server=.;database=myTestDB;uid=sa;pwd=sa;";
        
    protected void Page_Load(object sender, EventArgs e)
        {

        }


        
    protected void Button1_Click(object sender, EventArgs e)
        {

            BindData();
        }

        
    /// <summary>
        
    /// 绑定数据
        
    /// </summary>
        private void BindData() 
        {
            SqlConnection conn 
    = new SqlConnection(STRCONN);
            
    string sql1 = "select *  from AutoComplet ";
            SqlDataAdapter myAdapter 
    = new SqlDataAdapter(sql1, conn);
            DataSet ds 
    = new DataSet();
            myAdapter.Fill(ds, 
    "AutoComplet");
            
    //来自web service的dataset,这里随便一个ds就可以;
            this.GridView1.DataSource = ds.Tables["AutoComplet"].DefaultView; ;
            
    this.GridView1.DataBind(); //数据绑定
        }


        
    protected void Button2_Click(object sender, EventArgs e)
        {
            
    this.Label1.Text = "整页回送 --刷新页面";
        }

        
    /// <summary>
        
    /// 删除数据
        
    /// </summary>
        
    /// <param name="sender"></param>
        
    /// <param name="e"></param>
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            SqlConnection conn 
    = new SqlConnection(STRCONN);
            
    string sql1 = " delete  AutoComplet where userid= " + GridView1.DataKeys[e.RowIndex].Value.ToString();
            SqlCommand sc 
    = new SqlCommand(sql1,conn);
            sc.Connection.Open();
            sc.ExecuteNonQuery();
            sc.Connection.Close();

            GridView1.EditIndex 
    = -1;
            BindData();
        }

        
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            ((BoundField)GridView1.Columns[
    0]).ReadOnly = true//设置数量列为不可编辑状态
            GridView1.EditIndex = e.NewEditIndex;
            BindData();
        }
        
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex 
    = -1;
            BindData();
        }


        
    /// <summary>
        
    /// 更新数据
        
    /// </summary>
        
    /// <param name="sender"></param>
        
    /// <param name="e"></param>
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            SqlConnection conn 
    = new SqlConnection(STRCONN);
            
    string sql1 = " update  AutoComplet set  username = @username  where userid=@userid ";
            SqlCommand sc 
    = new SqlCommand(sql1, conn);

            sc.Parameters.Add(
    "@userid",SqlDbType.Int,4);
            sc.Parameters[
    "@userid"].Value = GridView1.DataKeys[e.RowIndex].Value.ToString();

            sc.Parameters.Add(
    "@username", SqlDbType.VarChar, 50);
            sc.Parameters[
    "@username"].Value = ((TextBox)this.GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();

            sc.Connection.Open();
            sc.ExecuteNonQuery();
            sc.Connection.Close();

            GridView1.EditIndex 
    = -1;
            BindData();
            ScriptManager.RegisterStartupScript(UpdatePanel1, 
    this.GetType(), "alter""alert('更新成功!')"true);
        }

        
    /// <summary>
        
    /// 插入新数据
        
    /// </summary>
        
    /// <param name="sender"></param>
        
    /// <param name="e"></param>
        protected void Button3_Click(object sender, EventArgs e)
        {
            SqlConnection conn 
    = new SqlConnection(STRCONN);
            
    string sql1 = " insert into AutoComplet values (@username) ";
            SqlCommand sc 
    = new SqlCommand(sql1, conn);

            sc.Parameters.Add(
    "@username", SqlDbType.VarChar, 50);
            sc.Parameters[
    "@username"].Value = TextBox1.Text.Trim();

            sc.Connection.Open();
            sc.ExecuteNonQuery();
            sc.Connection.Close();

            GridView1.EditIndex 
    = -1;
            BindData();
        }
        
    protected void Button4_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(UpdatePanel1, 
    this.GetType(), "alter""alert('弹出对话框!')"true);
           
    // 不支持
            
    //Page.ClientScript.RegisterStartupScript(Page.GetType(), "alert", "aler('弹出对话框!');", true);
        }
    }
  • 相关阅读:
    搭建一个属于私人博客
    Python正则表达式的匹配规则
    CentOS 使用yum 安装node.js
    一个单词a,如果通过交换单词中字母的顺序可以得到另外的单词b,那么定义b是a的兄弟单词。现在有一个字典,用户输入一个单词,从字典找出这个单词有多少个兄弟单词
    Clion报错 CMake Error at CMakeLists.txt:1 (cmake_minimum_required): CMake 3.
    给定一个整数sum,从n个有序的元素的数组中寻找a,b,使得a+b的结果最接近sum,最快的时间复杂度?
    Go语言通过Docker Go语言SDK获取docker stats的信息
    通过GO程序获取docker version的基本信息
    Go语言实现通过Docker SDK获取docker ps 命令信息&SDK 中docker ps源码解析
    Docker监控docker stats命令的使用与返回参数的意思
  • 原文地址:https://www.cnblogs.com/gaoyuchuanIT/p/1662795.html
Copyright © 2020-2023  润新知