Private Sub DataGrid1_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.DeleteCommand
Dim id As Integer = CInt(e.Item.Cells(3).Text)
Dim delsql As String = "delete from zdfw where id=" & CStr(id)
If id <> 0 Then
If deleterow(delsql) = 0 Then
getdataset()
DataGrid1.EditItemIndex = -1
Page.DataBind()
End If
End If '==============下面的代码是删除DS中的数据,但是没有立即提交到数据库中=========
'Const prk_id As Integer = 0
'Dim dt As DataTable = ds.Tables("zlfw")
'Dim pk(1) As DataColumn
'pk(0) = dt.Columns(prk_id)
'dt.PrimaryKey = pk
'Dim dr As DataRow = dt.Rows.Find(id)
'If Not dr Is Nothing Then
'dr.Delete()
'Dim dschange As DataSet = ds.GetChanges()
'Dim cb As New OleDb.OleDbCommandBuilder(da)
'If Not dschange Is Nothing Then
'da.Update(dschange, "zlfw")
'Response.Write("dfdfd")
'End If
'End If
'Page.DataBind()
'===================================结束========================================
End Sub Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim id1 As String = Trim(CType(e.Item.Cells(3).Controls(0), TextBox).Text)
Dim sfzh As String = Trim(CType(e.Item.Cells(4).Controls(0), TextBox).Text)
Dim xm As String = Trim(CType(e.Item.Cells(5).Controls(0), TextBox).Text)
Dim xb As String = Trim(CType(e.Item.Cells(6).Controls(0), TextBox).Text)
Dim fwcs As String = Trim(CType(e.Item.Cells(7).Controls(0), TextBox).Text)
Dim zz As String = Trim(CType(e.Item.Cells(8).Controls(0), TextBox).Text)
Dim czfwdz As String = Trim(CType(e.Item.Cells(9).Controls(0), TextBox).Text)
Dim lxdh As String = Trim(CType(e.Item.Cells(10).Controls(0), TextBox).Text)
Dim fjs As String = Trim(CType(e.Item.Cells(11).Controls(0), TextBox).Text)
Dim jwq As String = Trim(CType(e.Item.Cells(12).Controls(0), TextBox).Text)
Dim updatesql As String = "update zdfw set sfzh='" & sfzh & "',xm='" & xm & "',xb='" & xb & "',fwcs='" & fwcs & "',zz='" & zz & "',czfwdz='" & czfwdz & "',lxdh='" & lxdh & "',fjs='" & fjs & "',jwq='" & jwq & "' where id =" & id1
Response.Write(updatesql)
If updaterow(updatesql) = 0 Then
getdataset()
DataGrid1.EditItemIndex = -1
Page.DataBind()
End If
End Sub Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
getdataset()
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ds As DataSet = getdataset()
Dim dt As DataTable = ds.Tables("zlfw")
Dim dv As DataView = New DataView(dt)
dv.RowFilter = "姓名 like '张%'"
DataGrid1.DataSource = dv
DataGrid1.DataBind()
End Sub
End Class
Dim id As Integer = CInt(e.Item.Cells(3).Text)
Dim delsql As String = "delete from zdfw where id=" & CStr(id)
If id <> 0 Then
If deleterow(delsql) = 0 Then
getdataset()
DataGrid1.EditItemIndex = -1
Page.DataBind()
End If
End If '==============下面的代码是删除DS中的数据,但是没有立即提交到数据库中=========
'Const prk_id As Integer = 0
'Dim dt As DataTable = ds.Tables("zlfw")
'Dim pk(1) As DataColumn
'pk(0) = dt.Columns(prk_id)
'dt.PrimaryKey = pk
'Dim dr As DataRow = dt.Rows.Find(id)
'If Not dr Is Nothing Then
'dr.Delete()
'Dim dschange As DataSet = ds.GetChanges()
'Dim cb As New OleDb.OleDbCommandBuilder(da)
'If Not dschange Is Nothing Then
'da.Update(dschange, "zlfw")
'Response.Write("dfdfd")
'End If
'End If
'Page.DataBind()
'===================================结束========================================
End Sub Private Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim id1 As String = Trim(CType(e.Item.Cells(3).Controls(0), TextBox).Text)
Dim sfzh As String = Trim(CType(e.Item.Cells(4).Controls(0), TextBox).Text)
Dim xm As String = Trim(CType(e.Item.Cells(5).Controls(0), TextBox).Text)
Dim xb As String = Trim(CType(e.Item.Cells(6).Controls(0), TextBox).Text)
Dim fwcs As String = Trim(CType(e.Item.Cells(7).Controls(0), TextBox).Text)
Dim zz As String = Trim(CType(e.Item.Cells(8).Controls(0), TextBox).Text)
Dim czfwdz As String = Trim(CType(e.Item.Cells(9).Controls(0), TextBox).Text)
Dim lxdh As String = Trim(CType(e.Item.Cells(10).Controls(0), TextBox).Text)
Dim fjs As String = Trim(CType(e.Item.Cells(11).Controls(0), TextBox).Text)
Dim jwq As String = Trim(CType(e.Item.Cells(12).Controls(0), TextBox).Text)
Dim updatesql As String = "update zdfw set sfzh='" & sfzh & "',xm='" & xm & "',xb='" & xb & "',fwcs='" & fwcs & "',zz='" & zz & "',czfwdz='" & czfwdz & "',lxdh='" & lxdh & "',fjs='" & fjs & "',jwq='" & jwq & "' where id =" & id1
Response.Write(updatesql)
If updaterow(updatesql) = 0 Then
getdataset()
DataGrid1.EditItemIndex = -1
Page.DataBind()
End If
End Sub Private Sub DataGrid1_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
getdataset()
End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ds As DataSet = getdataset()
Dim dt As DataTable = ds.Tables("zlfw")
Dim dv As DataView = New DataView(dt)
dv.RowFilter = "姓名 like '张%'"
DataGrid1.DataSource = dv
DataGrid1.DataBind()
End Sub
End Class
如果翻页,你得恢复这个SORTEXPRESSION
<%@ Page language="c#" Codebehind="DataGrid分页排序.aspx.cs" AutoEventWireup="false" Inherits="StudyDotNet.DataGrid.DataGrid分页排序" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>DataGrid分页排序</title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="C#" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<!--************************问题描述区************************-->
<table width="100%" border="0">
<tr>
<td style="COLOR: red" align="center"><b>排序后再翻页的问题</b></td>
</tr>
<tr>
<td><b>出处:</b><A href="http://dotnet.aspx.cc/ShowDetail.aspx?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD">http://dotnet.aspx.cc/ShowDetail.aspx?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD</A></td>
</tr>
<tr>
<td><b>描述:</b>在点字段的排序后,然后再翻页,排序的顺序就乱了
</td>
</tr>
</table>
<hr>
<!--************************问题描述区(完)************************-->
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="True"
PageSize="4" DataKeyField="ID" AllowSorting="True">
<Columns>
<asp:BoundColumn DataField="ID" SortExpression="ID" HeaderText="编号"></asp:BoundColumn>
<asp:BoundColumn DataField="Name" SortExpression="Name" HeaderText="姓名"></asp:BoundColumn>
<asp:BoundColumn DataField="Sex" SortExpression="Sex" HeaderText="性别"></asp:BoundColumn>
<asp:BoundColumn DataField="Birthday" SortExpression="Birthday" HeaderText="生日"></asp:BoundColumn>
<asp:BoundColumn DataField="NativePlace" SortExpression="NativePlace" HeaderText="籍贯"></asp:BoundColumn>
<asp:BoundColumn DataField="Bursary" SortExpression="Bursary" HeaderText="奖学金"></asp:BoundColumn>
</Columns>
</asp:datagrid></form>
</body>
</HTML>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;namespace StudyDotNet.DataGrid
{
/// <summary>
/// DataGrid分页排序 的摘要说明。
/// </summary>
public class DataGrid分页排序 : System.Web.UI.Page
{
#region 控件申明
protected System.Web.UI.WebControls.DataGrid DataGrid1;
#endregion #region Page_Load
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack) BindData();
} #endregion #region 数据绑定
private void BindData()
{
DataView dv =new DataView();
dv = CreateDataSource().DefaultView;
if (ViewState["SortExpression"]!=null)
{
dv.Sort = ViewState["SortExpression"].ToString();
}
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
} private DataTable CreateDataSource()
{
//学号、姓名、性别、生日、籍贯、联系号码、奖学金、照片
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("Name");
dt.Columns.Add("Sex");
dt.Columns.Add("Birthday");
dt.Columns.Add("NativePlace");
dt.Columns.Add("Tel");
dt.Columns.Add("Bursary");
dt.Columns.Add("Photo");
dt.Rows.Add(new object[] {"200403240000","风","男","1981-10-12","江西省","13870626580","500","Photo\\Photo200403240000.jpg"});
dt.Rows.Add(new object[] {"200403240001","云","女","1981-11-15","北京市","13870626581","300","Photo\\Photo200403240001.jpg"});
dt.Rows.Add(new object[] {"200403240002","冰","男","1980-01-23","江西省","13870626582","1500","Photo\\Photo200403240002.jpg"});
dt.Rows.Add(new object[] {"200403240003","雨","女","1982-10-21","上海市","13870626583","5000","Photo\\Photo200403240003.jpg"});
dt.Rows.Add(new object[] {"200403240004","秦始皇","男","1981-10-12","江西省","13870626584","0","Photo\\Photo200403240004.jpg"});
dt.Rows.Add(new object[] {"200403240005","李世民","男","1981-10-12","上海市","13870626585","50","Photo\\Photo200403240005.jpg"});
dt.Rows.Add(new object[] {"200403240006","武则天","女","1981-10-12","北京市","13870626586","500","Photo\\Photo200403240006.jpg"});
dt.Rows.Add(new object[] {"200403240007","拿破仑","男","1981-10-12","上海市","13870626587","600","Photo\\Photo200403240007.jpg"});
dt.Rows.Add(new object[] {"200403240008","希特勒","男","1981-10-12","江西省","13870626588","5000","Photo\\Photo200403240008.jpg"});
return dt;
}
#endregion #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged);
this.DataGrid1.SortCommand += new System.Web.UI.WebControls.DataGridSortCommandEventHandler(this.DataGrid1_SortCommand);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
#region DataGrid事件
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
DataGrid1.CurrentPageIndex =e.NewPageIndex;
BindData();
}
private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
{
ViewState["SortExpression"] = e.SortExpression.ToString();
BindData();
}
#endregion
}
}