Repeter实现增,删,改,以及分页和排序
2009-08-17 20:56
495 查看
前台代码:
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="50px" Visible="False" Width="1029px">
<asp:Label ID="lblCompanyName" runat="server" Text="CompanyName" Visible="False"></asp:Label>
<asp:TextBox ID="txtCompanyName" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblName" runat="server" Text="ContactName" Visible="False"></asp:Label>
<asp:TextBox ID="txtContactName" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblAddress" runat="server" Text="Address" Visible="False"></asp:Label>
<asp:TextBox ID="txtAddress" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblCity" runat="server" Text="City" Visible="False"></asp:Label>
<asp:TextBox ID="txtCity" runat="server" Visible="False" Width="129px"></asp:TextBox>
<asp:Button ID="btnUpdate" runat="server" Text="更新" CommandName="Update" OnClick="btnUpdate_Click" />
<asp:Button ID="btnInsert" runat="server" Text="新增" OnClick="btnInsert_Click" />
<asp:Button ID="Button1" runat="server" Text="取消" CommandName="Cancel" OnClick="Button1_Click" />
</asp:Panel>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand"
OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table border="0" width="100%">
<tr>
<th align="left">
SupplierID</th>
<th align="left">
CompanyName</th>
<th align="left">
ContactName</th>
<th align="left">
Address</th>
<th align="left">
City</th>
<th>
</th>
<th>
</th>
<th>
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr id="Item" runat="server">
<td>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
</td>
<td>
<asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
<td>
<asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
<td>
<asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8" id="Alter" runat="server">
<td>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
</td>
<td>
<asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
<td>
<asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
<td>
<asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Label ID="lblPage" runat="server"></asp:Label>
<asp:Label ID="lblCount" runat="server"></asp:Label>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="上一页" />
<asp:Button ID="btnPage" runat="server" OnClick="btnPage_Click" Text="下一页" />
<asp:Button ID="btnSort" runat="server" Text="排序" OnClick="btnSort_Click" /></div>
</form>
后台代码:
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection Con;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
//设置默认的排序顺序
ViewState["CompanyName"] = "SupplierID";
ViewState["Direction"] = "ASC";
ViewState["LineNo"] = 0;
//初始化的时候默认显示第一页
lblCount.Text = "1";
BindRepeter();
}
}
//判断命令
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
...{
String Index = ((Label)Repeater1.Items[e.Item.ItemIndex].FindControl("lblID")).Text;
Session["ID"] = Index;
//编辑模式
if (e.CommandName == "Edit")
...{
string CompanyName = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCompanyName"))).Text;
string Name = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblName"))).Text;
string Address = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblAddress"))).Text;
string City = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCity"))).Text;
txtCompanyName.Text = CompanyName;
txtContactName.Text = Name;
txtAddress.Text = Address;
txtCity.Text = City;
if (Panel1.Visible == false)
...{
ShowMessage("进入编辑模式");
}
SetDisplayTrue();
btnInsert.Visible = false;
btnUpdate.Visible = true;
Button1.Visible = true;
}
//删除
else if (e.CommandName == "Delete")
...{
if (Panel1.Visible == true)
...{
ShowMessage("编辑模式下禁止删除");
}
else
...{
SetDisplayFalse();
string DeleteStr = "DELETE FROM Suppliers WHERE SupplierID='" + Index + "'";
Con = new SqlConnection(ConStr);
SqlCommand DeleteCmd = new SqlCommand(DeleteStr,Con);
try
...{
Con.Open();
DeleteCmd.ExecuteNonQuery();
ShowMessage("删除成功");
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("删除有错误,请检查");
}
finally
...{
Con.Dispose();
}
}
}//新增
else if (e.CommandName == "New")
...{
if (Panel1.Visible == true)
...{
ShowMessage("编辑模式下禁止添加新行");
}
else
...{
SetDisplayTrue();
ClearWord();
btnInsert.Visible = true;
btnUpdate.Visible = false;
Button1.Visible = true;
}
}
}
//绑定Repeter
private void BindRepeter()
...{
string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers";
Con = new SqlConnection(ConStr);
SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr);
DataSet Ds = new DataSet();
NorthWindDa.Fill(Ds, "Suppliers");
//Repeater1.DataKeyNames = new string[] { "SupplierID" };
DataView Dv = Ds.Tables["Suppliers"].DefaultView;
//排序表达式
string SortExpress = (string)ViewState["CompanyName"] + " " + (string)ViewState["Direction"];
Dv.Sort = SortExpress;
//绑定数据源
//Repeater1.DataSource = Ds.Tables["Suppliers"];
//利用PagedDataSource进行分页
PagedDataSource PageDs = new PagedDataSource();
PageDs.DataSource = Dv;
PageDs.AllowPaging = true;
PageDs.PageSize = 10;
int CurrentPage = Convert.ToInt32(lblCount.Text);
//当前页
PageDs.CurrentPageIndex = CurrentPage-1;
btnPage.Enabled = true;
Button2.Enabled = true;
if (CurrentPage == 1)
...{
Button2.Enabled = false;
}
if (CurrentPage == PageDs.PageCount)
...{
btnPage.Enabled = false;
}
//PageCount = PageDs.PageCount;
lblPage.Text = "共" + PageDs.PageCount + "页,当前在第";
//将PageDs作为数据源进行绑定
Repeater1.DataSource = PageDs;
Repeater1.DataBind();
}
//显示编辑区域
private void SetDisplayTrue()
...{
lblCompanyName.Visible = true;
lblName.Visible = true;
lblAddress.Visible = true;
lblCity.Visible = true;
txtCompanyName.Visible = true;
txtContactName.Visible = true;
txtAddress.Visible = true;
txtCity.Visible = true;
Panel1.Visible = true;
}
//隐藏编辑区域
private void SetDisplayFalse()
...{
lblCompanyName.Visible = false;
lblName.Visible = false;
lblAddress.Visible = false;
lblCity.Visible = false;
txtCompanyName.Visible = false;
txtContactName.Visible = false;
txtAddress.Visible = false;
txtCity.Visible = false;
Panel1.Visible = false;
}
private void ClearWord()
...{
txtCompanyName.Text = "";
txtContactName.Text = "";
txtAddress.Text = "";
txtCity.Text = "";
}
//封装javascript
private void ShowMessage(string Message)
...{
Literal TxtMsg = new Literal();
TxtMsg.Text = "<script>alert('"+Message+"')</script>";
Page.Controls.Add(TxtMsg);
}
//更新数据
protected void btnUpdate_Click(object sender, EventArgs e)
...{
/**//*在有数据输入的时候应该检查输入数据的合法性,
* 过滤掉特殊的脚本,特殊的字符串,提高安全性
*/
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string UpdateStr = "UPDATE Suppliers SET CompanyName='" + CompanyName + "',ContactName='" + ContactName + "'," +
"Address='" + Address + "',City='" + City + "' WHERE SupplierID='" + Session["ID"] + "' ";
Con = new SqlConnection(ConStr);
SqlCommand UpdateCmd = new SqlCommand(UpdateStr,Con);
try
...{
Con.Open();
UpdateCmd.ExecuteNonQuery();
ShowMessage("更新成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("更新出错,请重新输入");
}
finally
...{
Con.Dispose();
}
}
protected void Button1_Click(object sender, EventArgs e)
...{
SetDisplayFalse();
}
//插入一行新数据
protected void btnInsert_Click(object sender, EventArgs e)
...{
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string InsertStr = "INSERT INTO Suppliers (CompanyName,ContactName,Address,City) VALUES('" + CompanyName + "','" + ContactName + "','" + Address + "','" + City + "')";
Con = new SqlConnection(ConStr);
SqlCommand InsertCmd = new SqlCommand(InsertStr, Con);
try
...{
Con.Open();
InsertCmd.ExecuteNonQuery();
ShowMessage("插入成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("插入失败,请重新检查");
}
finally
...{
Con.Dispose();
}
}
//给删除按钮添加客户端的Confirm对话框
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
...{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
...{
((Button)Repeater1.Controls[Repeater1.Controls.Count-1].FindControl("Delete")).Attributes["onclick"] = "if(!confirm('你真的要删除这条记录么?'))return false;";
}
}
//下一页
protected void btnPage_Click(object sender, EventArgs e)
...{
//更改pageds的当前页数
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) + 1);
BindRepeter();
}
//上一页
protected void Button2_Click(object sender, EventArgs e)
...{
//更改当前页
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text)-1);
BindRepeter();
}
//排序
protected void btnSort_Click(object sender, EventArgs e)
...{
//判断排序表达式的顺序
if (ViewState["Direction"].ToString() == "DESC")
...{
ViewState["Direction"] = "ASC";
}
else
...{
ViewState["Direction"] = "DESC";
}
/**//*设置完排序的顺序以后,将排序后的dataview
*绑定到repeter上。这个方法,目前有个缺陷,
* 每次排序的时候都是将整个数据源进行排序,
* 并不是对当前的分页进行排序。
*/
BindRepeter();
}
<form id="form1" runat="server">
<div>
<asp:Panel ID="Panel1" runat="server" Height="50px" Visible="False" Width="1029px">
<asp:Label ID="lblCompanyName" runat="server" Text="CompanyName" Visible="False"></asp:Label>
<asp:TextBox ID="txtCompanyName" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblName" runat="server" Text="ContactName" Visible="False"></asp:Label>
<asp:TextBox ID="txtContactName" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblAddress" runat="server" Text="Address" Visible="False"></asp:Label>
<asp:TextBox ID="txtAddress" runat="server" Visible="False"></asp:TextBox>
<asp:Label ID="lblCity" runat="server" Text="City" Visible="False"></asp:Label>
<asp:TextBox ID="txtCity" runat="server" Visible="False" Width="129px"></asp:TextBox>
<asp:Button ID="btnUpdate" runat="server" Text="更新" CommandName="Update" OnClick="btnUpdate_Click" />
<asp:Button ID="btnInsert" runat="server" Text="新增" OnClick="btnInsert_Click" />
<asp:Button ID="Button1" runat="server" Text="取消" CommandName="Cancel" OnClick="Button1_Click" />
</asp:Panel>
<asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand"
OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
<table border="0" width="100%">
<tr>
<th align="left">
SupplierID</th>
<th align="left">
CompanyName</th>
<th align="left">
ContactName</th>
<th align="left">
Address</th>
<th align="left">
City</th>
<th>
</th>
<th>
</th>
<th>
</th>
</tr>
</HeaderTemplate>
<ItemTemplate>
<tr id="Item" runat="server">
<td>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
</td>
<td>
<asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
<td>
<asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
<td>
<asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr bgcolor="#e8e8e8" id="Alter" runat="server">
<td>
<asp:Label ID="lblID" runat="server" Text='<%#Eval("SupplierID") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCompanyName" runat="server" Text='<%#Eval("CompanyName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblName" runat="server" Text=' <%#Eval("ContactName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblAddress" runat="server" Text='<%#Eval("Address") %>'></asp:Label>
</td>
<td>
<asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
</td>
<td>
<asp:Button ID="Edit" runat="server" Text="编辑" CommandName="Edit" /></td>
<td>
<asp:Button ID="Delete" runat="server" Text="删除" CommandName="Delete" /></td>
<td>
<asp:Button ID="New" runat="server" Text="新增" CommandName="New" /></td>
</tr>
</AlternatingItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<asp:Label ID="lblPage" runat="server"></asp:Label>
<asp:Label ID="lblCount" runat="server"></asp:Label>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="上一页" />
<asp:Button ID="btnPage" runat="server" OnClick="btnPage_Click" Text="下一页" />
<asp:Button ID="btnSort" runat="server" Text="排序" OnClick="btnSort_Click" /></div>
</form>
后台代码:
string ConStr = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
SqlConnection Con;
protected void Page_Load(object sender, EventArgs e)
...{
if (!IsPostBack)
...{
//设置默认的排序顺序
ViewState["CompanyName"] = "SupplierID";
ViewState["Direction"] = "ASC";
ViewState["LineNo"] = 0;
//初始化的时候默认显示第一页
lblCount.Text = "1";
BindRepeter();
}
}
//判断命令
protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
...{
String Index = ((Label)Repeater1.Items[e.Item.ItemIndex].FindControl("lblID")).Text;
Session["ID"] = Index;
//编辑模式
if (e.CommandName == "Edit")
...{
string CompanyName = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCompanyName"))).Text;
string Name = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblName"))).Text;
string Address = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblAddress"))).Text;
string City = ((Label)(Repeater1.Items[e.Item.ItemIndex].FindControl("lblCity"))).Text;
txtCompanyName.Text = CompanyName;
txtContactName.Text = Name;
txtAddress.Text = Address;
txtCity.Text = City;
if (Panel1.Visible == false)
...{
ShowMessage("进入编辑模式");
}
SetDisplayTrue();
btnInsert.Visible = false;
btnUpdate.Visible = true;
Button1.Visible = true;
}
//删除
else if (e.CommandName == "Delete")
...{
if (Panel1.Visible == true)
...{
ShowMessage("编辑模式下禁止删除");
}
else
...{
SetDisplayFalse();
string DeleteStr = "DELETE FROM Suppliers WHERE SupplierID='" + Index + "'";
Con = new SqlConnection(ConStr);
SqlCommand DeleteCmd = new SqlCommand(DeleteStr,Con);
try
...{
Con.Open();
DeleteCmd.ExecuteNonQuery();
ShowMessage("删除成功");
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("删除有错误,请检查");
}
finally
...{
Con.Dispose();
}
}
}//新增
else if (e.CommandName == "New")
...{
if (Panel1.Visible == true)
...{
ShowMessage("编辑模式下禁止添加新行");
}
else
...{
SetDisplayTrue();
ClearWord();
btnInsert.Visible = true;
btnUpdate.Visible = false;
Button1.Visible = true;
}
}
}
//绑定Repeter
private void BindRepeter()
...{
string QueryCon = "SELECT SupplierID,CompanyName,ContactName,Address,City FROM Suppliers";
Con = new SqlConnection(ConStr);
SqlDataAdapter NorthWindDa = new SqlDataAdapter(QueryCon, ConStr);
DataSet Ds = new DataSet();
NorthWindDa.Fill(Ds, "Suppliers");
//Repeater1.DataKeyNames = new string[] { "SupplierID" };
DataView Dv = Ds.Tables["Suppliers"].DefaultView;
//排序表达式
string SortExpress = (string)ViewState["CompanyName"] + " " + (string)ViewState["Direction"];
Dv.Sort = SortExpress;
//绑定数据源
//Repeater1.DataSource = Ds.Tables["Suppliers"];
//利用PagedDataSource进行分页
PagedDataSource PageDs = new PagedDataSource();
PageDs.DataSource = Dv;
PageDs.AllowPaging = true;
PageDs.PageSize = 10;
int CurrentPage = Convert.ToInt32(lblCount.Text);
//当前页
PageDs.CurrentPageIndex = CurrentPage-1;
btnPage.Enabled = true;
Button2.Enabled = true;
if (CurrentPage == 1)
...{
Button2.Enabled = false;
}
if (CurrentPage == PageDs.PageCount)
...{
btnPage.Enabled = false;
}
//PageCount = PageDs.PageCount;
lblPage.Text = "共" + PageDs.PageCount + "页,当前在第";
//将PageDs作为数据源进行绑定
Repeater1.DataSource = PageDs;
Repeater1.DataBind();
}
//显示编辑区域
private void SetDisplayTrue()
...{
lblCompanyName.Visible = true;
lblName.Visible = true;
lblAddress.Visible = true;
lblCity.Visible = true;
txtCompanyName.Visible = true;
txtContactName.Visible = true;
txtAddress.Visible = true;
txtCity.Visible = true;
Panel1.Visible = true;
}
//隐藏编辑区域
private void SetDisplayFalse()
...{
lblCompanyName.Visible = false;
lblName.Visible = false;
lblAddress.Visible = false;
lblCity.Visible = false;
txtCompanyName.Visible = false;
txtContactName.Visible = false;
txtAddress.Visible = false;
txtCity.Visible = false;
Panel1.Visible = false;
}
private void ClearWord()
...{
txtCompanyName.Text = "";
txtContactName.Text = "";
txtAddress.Text = "";
txtCity.Text = "";
}
//封装javascript
private void ShowMessage(string Message)
...{
Literal TxtMsg = new Literal();
TxtMsg.Text = "<script>alert('"+Message+"')</script>";
Page.Controls.Add(TxtMsg);
}
//更新数据
protected void btnUpdate_Click(object sender, EventArgs e)
...{
/**//*在有数据输入的时候应该检查输入数据的合法性,
* 过滤掉特殊的脚本,特殊的字符串,提高安全性
*/
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string UpdateStr = "UPDATE Suppliers SET CompanyName='" + CompanyName + "',ContactName='" + ContactName + "'," +
"Address='" + Address + "',City='" + City + "' WHERE SupplierID='" + Session["ID"] + "' ";
Con = new SqlConnection(ConStr);
SqlCommand UpdateCmd = new SqlCommand(UpdateStr,Con);
try
...{
Con.Open();
UpdateCmd.ExecuteNonQuery();
ShowMessage("更新成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("更新出错,请重新输入");
}
finally
...{
Con.Dispose();
}
}
protected void Button1_Click(object sender, EventArgs e)
...{
SetDisplayFalse();
}
//插入一行新数据
protected void btnInsert_Click(object sender, EventArgs e)
...{
string CompanyName = Server.HtmlEncode(txtCompanyName.Text.ToString());
string ContactName = Server.HtmlEncode(txtContactName.Text.ToString());
string Address = Server.HtmlEncode(txtAddress.Text.ToString());
string City = Server.HtmlEncode(txtCity.Text.ToString());
string InsertStr = "INSERT INTO Suppliers (CompanyName,ContactName,Address,City) VALUES('" + CompanyName + "','" + ContactName + "','" + Address + "','" + City + "')";
Con = new SqlConnection(ConStr);
SqlCommand InsertCmd = new SqlCommand(InsertStr, Con);
try
...{
Con.Open();
InsertCmd.ExecuteNonQuery();
ShowMessage("插入成功");
SetDisplayFalse();
BindRepeter();
}
catch (Exception ex)
...{
ShowMessage("插入失败,请重新检查");
}
finally
...{
Con.Dispose();
}
}
//给删除按钮添加客户端的Confirm对话框
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
...{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
...{
((Button)Repeater1.Controls[Repeater1.Controls.Count-1].FindControl("Delete")).Attributes["onclick"] = "if(!confirm('你真的要删除这条记录么?'))return false;";
}
}
//下一页
protected void btnPage_Click(object sender, EventArgs e)
...{
//更改pageds的当前页数
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text) + 1);
BindRepeter();
}
//上一页
protected void Button2_Click(object sender, EventArgs e)
...{
//更改当前页
lblCount.Text = Convert.ToString(Convert.ToInt32(lblCount.Text)-1);
BindRepeter();
}
//排序
protected void btnSort_Click(object sender, EventArgs e)
...{
//判断排序表达式的顺序
if (ViewState["Direction"].ToString() == "DESC")
...{
ViewState["Direction"] = "ASC";
}
else
...{
ViewState["Direction"] = "DESC";
}
/**//*设置完排序的顺序以后,将排序后的dataview
*绑定到repeter上。这个方法,目前有个缺陷,
* 每次排序的时候都是将整个数据源进行排序,
* 并不是对当前的分页进行排序。
*/
BindRepeter();
}
相关文章推荐
- Repeter实现增,删,改,以及分页和排序
- 【EntityFramework系列教程三,翻译】在ASP.NET MVC程序中使用EntityFramework对数据进行排序、过滤筛选以及实现分页
- 通过angularjs的directive以及service来实现的列表页加载排序分页
- 通过angularjs的directive以及service来实现的列表页加载排序分页(转)
- SQL分页排序的实现与分页数据重复问题——以Oracle rownum为例
- 如何在DataGrid控件中实现编辑、删除、分类以及分页操作
- 堆排序原理以及实现
- 原生PHP实现数据筛选以及简单分页功能
- SQL实现分页(通过PHP)以及增删改查核心语句
- 比较和排序(IComparable和IComparer以及它们的泛型实现)
- SQL行号排序和分页(SQL查询中插入行号 自定义分页的另类实现)
- Android项目类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
- Vue.js实现多条件筛选、搜索、排序及分页的表格功能
- Spring与SpringMVC整合,以及实现数据库数据的增删查改和分页操作
- Sybase 大数据量(100W条)分页 jdbc实现目前要求无排序
- Ibatis调用存储过程实现增删改以及分页查询
- GridView在代码中实现分页和排序
- JS实现table表格数据排序功能(可支持动态数据+分页效果)
- JS+Ajax+Jquery实现页面无刷新分页以及分组 超强的实现 加上你的CSS完全可以与EXT媲美哦
- j2ee jquery分页原理以及实现