GridView和DetailsView一起使用,DetailsView显示详情后无法删除
一、页面代码:<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="post_id"
onpageindexchanging="GridView1_PageIndexChanging"
onrowdeleting="GridView1_RowDeleting"
onselectedindexchanged="GridView1_SelectedIndexChanged">
<Columns>
<asp:BoundField DataField="post_id" HeaderText="帖子编号" />
<asp:CommandField SelectText="查看详情" ShowSelectButton="True" />
<asp:CommandField ShowDeleteButton="True" />
</Columns>
</asp:GridView>
</div>
<asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px">
</asp:DetailsView>
</form>
</body>
</html>
二、后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
namespace yangshuaiNew
{
public partial class WebForm3 : System.Web.UI.Page
{
string constr = "server=(local);database=Curriculum_knowledge_communication;trusted_connection=true";
public void bind()
{
string sqlstr = "select post_id from cPost";
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlDataAdapter myadpt = new SqlDataAdapter(sqlstr, con);
DataSet myds = new DataSet();
myadpt.Fill(myds, "cPost");
GridView1.DataSource = myds;
GridView1.DataBind();
GridView1.DataKeyNames = new string[] { "post_id" };
con.Close();
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) //页面首次加载时调用bind()函数
{
bind();
}
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
//删除
string sqlstr = "delete from cPost where post_id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
SqlConnection con = new SqlConnection(constr);
con.Open();
SqlCommand cmd = new SqlCommand(sqlstr, con);
cmd.ExecuteNonQuery();
con.Close();
GridView1.DataBind();
bind();
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
//分页操作中页码变化时重新设置当前页的索引,并绑定数据显示
GridView1.PageIndex = e.NewPageIndex;
bind();
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(constr);
string sqlstr = "select * from cPost where post_id='" + GridView1.SelectedValue + "'";
SqlCommand cmd = new SqlCommand(sqlstr, con);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds, "cPost");
DetailsView1.DataSource = ds.Tables[0].DefaultView;
DetailsView1.DataBind();
}
}
}
三、出现的问题(GridView显示的不在了但DetailsView的数据还在)
四、解决方法
在删除代码里面添加
DetailsView1.DataSource = null;
DetailsView1.DataBind();
- ASP.NET Core的路由[5]:内联路由约束的检验
- .NET Core跨平台的奥秘[下篇]:全新的布局
- Equation Group泄露文件分析
- ModelBinder——ASP.NET MVC Model绑定的核心
- 一句代码实现批量数据绑定[下篇]
- 三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate
- 解密Myspace密码的姿势
- weblogic安全配置二三事
- 开发自己的Data Access Application Block[下篇]
- 【CSS】格仔背景
- 这年头真的还有USB设备是安全的吗?
- js的动态加载、缓存、更新以及复用(一)使用范围:遇到的问题:目标:页面结构:正文
- js的动态加载、缓存、更新以及复用(二)恼人的命名冲突
- 以【猫叫、老鼠跑、主人醒】为例子,使用 javascript 来实现 观察者模式 (有在线演示)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 浅谈JavaScript中的apply,call和bind
- Git 的简单使用
- 移动端适配
- 《Algorithms Unlocked》读书笔记1——循环和递归
- 《Algorithms Unlocked》读书笔记2——二分查找和排序算法
- 《Algorithms Unlocked》读书笔记3——计数排序
- vue-element-admin
- 二叉树的递归算法
- mongoDB基本操作
- 一个 Vue + Node + MongoDB 博客系统
- promise 和 async 的用法
- 解决 iPhone 微信 H5 无法自动播放音乐问题
- Sequelize 基本操作
- Java面试高频问题汇总 线程池专题
- Node.js 使用 RSA 做加密